Java集合类

一、集合类(Collection):

  1)用于存储对象;长度可变;存储不同类型对象;

  2)集合类和数组的区别:

    (1)数组长度不变;集合类可变;

    (2)数组中数据都是同类型;集合类可以不同;

二、集合框架的构成和分类:

   

三、常用接口:

1List(列表):可存放重复元素,元素存取是有序的;该集合体系有索引

2Set(集合):不可存放重复元素,元素存取是无序的;该集合体系没有索引

  //无序:存入和取出的顺序不一致;

(3)Map(集合)存储的为键值对;Map为双列集合,Colleciton单列集合;set集合底层为map集合;不是Collection的子接口;不能用迭代器;

四、List中常用类:

   1.ArrayList数组结构;线程不同步,增删速度慢,查询速度快。1.2jdk

   2.LinkedList链表结构;增删速度快,查询速度慢。

   3.Vector数组结构;线程同步;已被ArrayList替代;1.0jdkcolleciton—1.2jdk  

        Vector<String> strings = new Vector<>();
        strings.add("1");
        strings.add("2");
        strings.add("3");
        Enumeration<String> elements = strings.elements();
        while (elements.hasMoreElements()) {
            String s = elements.nextElement();
            System.out.println(s);
        }

五、Set中常用类:

  1.HashSet:哈希表结构;线程不同步;通过hashCodeequals两方法保证数据的唯一性;如果hashCode相同才判断元素的equals

  2.LinkedHashSet;内部是一个双向链表结构;

  3.TreeSet二叉树自然顺序排序;通过compareTo或者compare两方法保证元素唯一性;元素以二叉树形式存放;

     TreeSet的两种排序:

    (1)实现Comparable接口:根据compareTo的返回值排序;

    (2)实现Comparator接口:根据compare的返回值排序;

        //两种比较器都存在时,第2种优先于第1种;

 五、Map中常用类:

  1.HashTable底层是哈希表数据结构,不可以存入nullnull值;JDK1.0;线程同步,用的synchronized锁,表锁;效率低;

  2.ConcurrentHashMap:是HashtTable的升级版本,线程同步,用的分段锁,提升了效率;

  3.HashMap底层是哈希表数据结构,允许存入nullnullJDK1.2;线程不同步;效率高;

  4.LinkedHashMap

  5.TreeMap底层是二叉树结构;可以排序;JDK1.2;线程不同步;

 

posted @ 2019-07-23 23:32  开拖拉机的拉风少年  阅读(139)  评论(0编辑  收藏  举报