永刚的点滴成长

导航

 

java容器有哪些:

  Collection和Map,其中Collection是单列,Map是双列;单列下的具体有Set\List,多列下有Map接口。

List接口中的实现类特点:

  ArrayList:底层用数组实现,查询效率高,插入效率低,线程不安全。

  LinkedLis:t底层用双向链表实现,查询效率低,插入效率高,线程不安全。

  Vector:底层用长度可动态增长的对象数组实现,该实现的相关方法用了同步关键字,所以线程安全但效率低下。

  Stack:继承自Vector,特点先进后出。

Set接口中实现类特点:

  HashSet:底层用HashMap实现,本质就是Map中没有bucket。查询效率和增删效率都很高,

  LinkedHashSet:继承自HashSet,内部使用了LinkHashMap,好处就是LinkedHashSet中的元素是有序的。

  TreeSet:内部用TreeMap实现,底层是一种二叉查找数,需要对元素做内部排序,因此存储的兑现要实现Comparable接口且不能传入null。

Map接口中实现类的特点:

  HashMap:采用散列算法实现,底层用哈希表来存储数据,hashMap在查找删除修改效率都很高,允许key或value为null。

  LinkedHashMap:继承自HashMap,是HashMap和双向链表的组合,他是一个将所有entry节点都链入双向链表的HashMap,迭代顺序可以是插入顺序也可以是访问顺序,默认是按照插入顺序排序的。

  HashTable:与HashMap类似不同点就是其中的方法用了同步关键字确保安全但效率低,不允许key或value为null。

  TreeMap:是在Map中按照自然排序时才选用TreeMap

  ConcurrentHashMap:线程安全

posted on 2023-04-07 11:13  永刚的点滴成长  阅读(17)  评论(0编辑  收藏  举报