java集合

Posted hdljdylzsx

tags:

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

参考: 杨洛平 https://www.cnblogs.com/yangliguo/p/7476788.html

简单整理

List:有序可重复

  ArrayList    基于数组

    查询效率高,增删改效率低。

  LinkedList  基于链表

    查询效率低,增删改效率高。

    如果操作的index如果大于LinkedList长度的二分之一时是从后往前找(一个优化,LinkedList的两个指针,一个在first,一个在last)

Set:无序不重复

  HashSet  

    基于HashMap;key是HashSet的值,value都是 private static final Object PRESENT = new Object();

    是可以存null的;

  LinkedHashSet

    有序,顺序为存入数据的顺序;

    是可以存null的;

  TreeSet  

    基于TreeMap;key是HashSet的值,value都是 private static final Object PRESENT = new Object();

    是根据元素的自然顺序排序,也可以根据创建set时提供的Comparator进行排序

Map:键值对的形式存储数据(键唯一,值不唯一)

  HashMap

    默认容量、负载因子分别是16和0.75。

    非线程安全;

    键和值都可以为null;

    效率高;

  LinkedHashMap

    有序的HashMap,顺序为数据存入的先后顺序

    键和值都可以为null;

  ConcurrentHashMap

    线程安全

    效率比HashTable高,因为采用的是分段锁的机制

    键和值都不能为null;这里有比较合理的解释https://blog.csdn.net/gagewang1/article/details/54971965

  HashTable

    线程安全;

    键和值都不能为null;这里有比较合理的解释https://blog.csdn.net/gagewang1/article/details/54971965

    效率低;

  TreeMap

    基于红黑树的NavigableMap实现的

    非线程安全

    键不能为null,值可以为null;

    根据元素的自然顺序进行排序。

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

java集合是啥?

Java集合源码剖析Java集合框架

Java集合

Java集合

Java集合一 集合框架

Java 集合类