搜索

JAVA---Collection和Map区别


发布时间: 2022-11-24 18:45:09    浏览次数:105 次

1. Collection<T>

 

==元素都是单值==

  元素是否有序 元素是否可重复
List<T> 有序(所有的元素都有索引位置) 可以
Set<T> 无序(没有索引位置) 不可以

1.1. List<T>

 

  数据结构 线程安全 效率
ArrayList<T> 动态数组 查/修改 新增和删除慢
LinkedList<T> 双向链表 新增/删除快 查/修改慢
Vector<T> 动态数组 性能一般
CopyonWriteArrayList<T> 动态数组 性能最慢

 

1.2. Set<T>

 

  数据结构 线程安全 元素是否可以为null
HashSet HashMap(数组+单向链表+红黑树) 可以
LinkedHashSet HashMap 可以
TreeSet 红黑树 TreeMap 不可以
CopyOnWriteArraySet CopyOnWriteArrayList 是 Lock 可以

 

2. Map<K,V>

 

  数据结构 线程安全 key/value是否可以为null
HashMap 位桶+单向链表+红黑树 k/v 都可以
LinkedHashMap 位桶+单向链表+红黑树 k/v 都可以
TreeMap 红黑树 k不可以 v 可以
HashTable hash表 k/v 都不可以
ConcurrentHashmap jdk1.7 锁分段技术 segment jdk1.8 CAS k/v 都不可以
CAS:
 compare and  swap  比较并交换  乐观锁  认为任何操作都不会出现问题  效率很快  查询的场景
    多读少写 ----->  Redis 缓存 (主从同步)  
     
synchornized:
  同步锁  悲观锁  互斥锁  可重入锁
           
 

 

免责声明 JAVA---Collection和Map区别,资源类别:文本, 浏览次数:105 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:45:09。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/wang1999an/p/16814465.html