java 集合类Collection及Map 常用类

Posted xiewenda8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 集合类Collection及Map 常用类相关的知识,希望对你有一定的参考价值。

集合

Collection

        |---List :元素是有序的,元素可以重复。因为此集合类有索引。

                |--ArrayList:(线程不同步)底层的数据结构使用的是数组结构,查找数据的速度较快。但是增删的操作稍慢,元素多的时候越明显。

                |--LinkedList:底层数据用的是链表数据结构。特点:增删速度很快,查询稍慢。

                |--Vector:(线程同步)被ArrayList代替了

                       |-- Stack 栈 后进先出 LIFO 线程安全,支持push(),top(),pop().

        |---Set :元素无序,元素不可以重复。

               |--HashSet:底层数据是哈希表,元素是无序的。添加、删除操作时间复杂度都是O(1)

                         |--LinkedHashSet 元素是有序的,是介于HashSet 和 TreeSet之间,内部是一个双向链表结构。

                    HashSet是如何保证元素的唯一性的呢?

                  是通过元素的俩个方法,hashCode和equals来完成的。如果元素的HashCode值相同,就去判断equals是否为ture。如果HashCode值不同,就不再判断 equals                       

              |--TreeSet  内部结构是一个树结构(红黑树),元素是有序的,添加、删除操作时间复杂度为O(log(n)),并且提供了first(), last(), headSet(), tailSet()等方法来处理有序集合。

              |--EnumSet 元素都是枚举对象有序,使用位向量的形式存储,占用内存小,运行高效,不允许存储null。

       |--- Queue 队列 FIFO

                |--Deque 双端队列 查询效率相比单项队列高 

                          |--LinkedList 元素是有序的,双向链表结构,增删快,随机查询和遍历较慢。

                          |--ArrayDeque 元素有序,数组结构,增删慢,随机查询和遍历较快。

                |--PriorityQueue 元素有序,但是不是按照插入顺序先进先出,而是按照大小排列,并非严格意义删的队列顺序

Map

    |--- HashTable 元素无序,key不能为null,线程安全

    |--- HashMap 元素无序,key和value 可以为null ,线程非安全。

               |--- LinkedHashMap 元素按按插入前后排序,比HashMap 插入稍慢,由于是链表结构迭代顺序会快。

    |--- AbstractMap 

                 |--- TreeMap 元素是有序的,基于红黑树实现。该ßß映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。

 

       

                                                                                        

 

 

 

   

以上是关于java 集合类Collection及Map 常用类的主要内容,如果未能解决你的问题,请参考以下文章

java中常用的数据结构--Collection接口及其子类

Java集合及Concurrent并发包总结

Java集合及concurrent并发包总结

Java集合及concurrent并发包总结(转)

Java集合框架中接口Collection和Map的区别

集合常用类及方法汇总