Java基础之List与Set集合

List接口特点:
     1. 它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储
就是按照11、22、33的顺序完成的)。
     2. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道
理)。
     3. 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。

List接口中常用的方法

     List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根
据元素索引来操作集合的特有方法,如下:
      public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置
上。
      public E get(int index) :返回集合中指定位置的元素。
      public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
      public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的
更新前的元素。
 

List接口的子类

     1.ArrayList:它数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中
使用最多的功能为查询数据、遍历数据,所以 ArrayList 是最常用的集合。
     2.LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集。

     3.Vector集合数和ArrayList一样底层使用数组结构。元素增删慢,查找快,与ArrayList不同
的是Vector是线程安全的,速度慢,工作中很少使用。

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("王五");
        list.add("王五");
        list.add("王五");
        //曾强for循环
        for (String s : list) {
            System.out.println("s: " + s);
        }
        System.out.println("----------------");

        // public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
        list.add(1, "赵六");
        System.out.println(list); // [张三, 赵六, 李四, 王五]

        // public E get(int index) :返回集合中指定位置的元素。
        System.out.println(list.get(0)); // 张三

        // public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
        list.remove(0);
        System.out.println(list); // [赵六, 李四, 王五]

        // public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素
        list.set(1, "田七");
        System.out.println(list); // [赵六, 田七, 王五]
    }

Set接口: 与 List 接口不同的是, Set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
Set接口的子类

   1.HashSet:是 Set 接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无
序的(即存取顺序不能保证不一致)。 java.util.HashSet 底层的实现其实是一个
java.util.HashMap 支持.

public class HashSetDemo {
    public static void main(String[] args) {
//创建 Set集合
        HashSet<String> set = new HashSet<String>();
//添加元素
            set.add(new String("cba"));
            set.add("abc");
            set.add("bac");
            set.add("cba");
            //遍历
            for (String name : set) {
                System.out.println(name);
        }
    }
}

   2.LinkedHashSet:为HashSet的子类,是链表和哈希表组合的一个数据存储结构,集合中的元素有序存储。

public class LinkedHashSetDemo {
    public static void main(String[] args) {
        Set<String> set = new LinkedHashSet<String>();
        set.add("bbb");
        set.add("aaa");
        set.add("abc");
        set.add("bbc");
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
        System.out.println(it.next());
                }
            }
        }
结果:
bbb
aaa
abc
bbc


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值