总结 -集合

集合:
        一.collection   接口里面存储的元素是可以迭代的 ,也可用foreach来遍历。
        (1)list   :元素有序可重复,有下标。 
            Arraylist 集合:
                特点:底层是数组。有序 ,查询快,增删慢。
                扩容:在初始化容量长度是10,扩容是扩容到原容量的1.5倍·。

                Arraylist集合的遍历方法

        //创建一个ArrayList集合
        List array = new ArrayList();
        //在ArrayList集合里面添加元素
        array.add("1");
        array.add("2");
        array.add("3");
        //迭代器编辑遍历ArrayList集合
        //获取迭代器
        Iterator iterator = array.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //foreach遍历ArrayList集合
        for(Object o :array){
            System.out.println(o);
        }

          
            LinkedList集合:
                特点:底层是双向链表。有序,查询慢,增删快

           Linkedlist遍历

        //创建一个LinkedList集合
        List linked =new LinkedList();
        linked.add(1);
        linked.add(2);
        linked.add(3);
        //迭代器遍历
        Iterator iterator = linked.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //foreach遍历
        for(Object o:linked){
            System.out.println(o);
        }

            Linkedlist集合特有方法

          

        //创建一个LinkedList集合
        LinkedList linked =new LinkedList();
        linked.add(1);
        linked.add(2);
        linked.add(3);
        //获取追后一个元素。
        Object o = linked.getLast();
        //删除最后一个元素。
        Object o2 =linked.removeLast();
        //获取第一个元素。
        Object o3 = linked.getFirst();
        //删除第一个元素。
        Object o4 =linked.removeFirst();

 
            Vector集合:
                特点:底层是数组的数据结构。Vector是线程安全的 ,他的所有方法都是synchronized修饰的。
        (2)set:
            HashSet集合:
                HashSet:底层是new了一个HashMap集合,在向里面添加元素的时候其实是把元素添加在hashMap的key上。
                所以HashSet集合是无序不能重复的。     HashSet集合底层是一个哈希表的数据结构。
                HashSet集合初始化容量是16。初始化容量建议是2的倍数。HashSet扩容是扩容到原来的2倍。
            TreeSet集合:
                TreeSet:底层是new了一个TreeMap集合,TreeMap集合底层是一个红黑树的数据结构,添加元素的时候把元素放在TreeMap集合的key上。
                所以TreeSet集合是不能重复、无序、可排序的。
            
    二、Map :Map里面存储的元素都以<k,v>形式来存储的。k无序,不可重复。
        (1)HashMap集合:
            HashMap集合底层是哈希表,在jdk8以后,如果单项链表上的元素达到8个单向链表的数据结构就会变成红黑树的数据结构。当红黑树上的节点小于6时就会变回单向链表。
            Hash Map初始化容量时16.默认加载因子时0.75。扩容是变为原来的两倍。HashMap集合的key和value可以为null。
        (2)HashTable集合:
            Hash Table集合底层是哈希表的数据结构。是线程安全的。其中所有的方法都是sychronzied修饰的。效率较低
            <key,value>不允许为null。
            HashTable集合初始化容量为11。扩容是变为原容量的二倍+1。
                Properties 集合是HashTable集合子类。是线程安全的。properties集合和Hash table集合相似,但是<key,value>只支持存储String类型的数据Properties被称为属性类。
        (3)TreeMap集合:
            TreeMap集合底层是一个二叉树,可以通过key部分自动排序。

上一篇:STL迭代器适配器


下一篇:ArrayList集合概述