JAVA基础之Set集合和List集合使用姿势

该篇文章我们来谈谈Collection单列集合中的成员List和Set的特点及使用姿势。

List特点:有序,有索引,元素可以重复。 

实现List接口的类:ArrayList、Vector、LinkedList

Set特点:无序,无索引,元素不可以重复。

实现Set接口的类:HashSet、TreeSet、LinkedHashSet

下面我们来看看实现List接口的类:

ArrayList

public static void demo1(){
    //特点查询快,增删慢,线程不安全,不可以存空,效率高
    List list = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
        list.add(""+i);
    }
    list.add("3");
    Iterator iterator = list.iterator();
    while (iterator.hasNext()){
        System.out.println(iterator.next());
    }
}

执行结果:

JAVA基础之Set集合和List集合使用姿势_第1张图片

Vector

public static void demo2(){
    //特点查询快,增删慢,线程安全,不可以存空,效率低
    List list = new Vector<>();
    for (int i = 0; i < 5; i++) {
        list.add(""+i);
    }
    list.add("5");
    Iterator iterator = list.iterator();
    while (iterator.hasNext()){
        System.out.println(iterator.next());
    }
}

执行结果:

JAVA基础之Set集合和List集合使用姿势_第2张图片

LinkedList

 

public static void demo3(){
    //特点查询慢,增删快,线程不安全,不可以存空,效率高
    List list = new LinkedList<>();
    for (int i = 0; i < 5; i++) {
        list.add(""+i);
    }
    list.add("6");
    Iterator iterator = list.iterator();
    while (iterator.hasNext()){
        System.out.println(iterator.next());
    }
}

执行结果:

JAVA基础之Set集合和List集合使用姿势_第3张图片

 

介绍完List集合下面的成员后,我们接下来看看Set集合

HashSet

public static void demo4(){
    //存取快,可以写入空,去重原理:必须重写hashCode()和equest()方法
    Set set= new HashSet<>();
    for (int i = 0; i < 5; i++) {
        set.add(""+i);
    }
    set.add("3");
    set.add(null);

    Iterator iterator = set.iterator();
    while (iterator.hasNext()){
        System.out.println(""+iterator.next());
    }

}

执行结果:

JAVA基础之Set集合和List集合使用姿势_第4张图片

TreeSet

 

public static void demo5(){
    //有序,不可以写入空,去重原理底层是二叉树
    Set set=new TreeSet<>();
    for (int i = 0; i < 5; i++) {
        set.add(""+i);
    }
    set.add("3");
    Iterator iterator = set.iterator();
    while (iterator.hasNext()){
        System.out.println(""+iterator.next());
    }
}

执行结果:

JAVA基础之Set集合和List集合使用姿势_第5张图片

LinkedHashSet

public static void demo6(){
    //数据的插入要逊色于HashSet,有序,可以写入空
    Set set =new LinkedHashSet<>();
    for (int i = 0; i < 5; i++) {
        set.add(""+i);
    }
    set.add("3");
    set.add(null);
    Iterator iterator = set.iterator();
    while (iterator.hasNext()){
        System.out.println(""+iterator.next());
    }
}

 

执行结果:

 

JAVA基础之Set集合和List集合使用姿势_第6张图片

今天Collection单列集合就介绍到这里,我们下篇再一起探讨一下双列集合Map

你可能感兴趣的:(JAVA基础之Set集合和List集合使用姿势)