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 常用类的主要内容,如果未能解决你的问题,请参考以下文章