JAVA集合比较(面试)

HashSet:
1.不能重复
2.不保证顺序
3.可以放置null
4.底层是哈希表实现(HashMap)

TreeSet:
1.不能重复
2.默认字典顺序(字符串),升序(数字)
3.不可以放置null
4.底层是红黑树实现(TreeMap)

HashMap:
1.存储键值对,允许一个key可以是null,多个value可以是null
2.不保证顺序
3.key不能重复
4.线程不安全
5.初始大小16,扩容时:2*old

HashTable:
1.线程安全
2.不允许出现null(key和value都不行)
3.初始大小11,扩容时:2*old+1

TreeSet:
1.插入删除查找都是O(lgn)
2.保证数据有序状态

ConcurrentHashMap:
1.分段锁,segment默认是16个,效率提升16倍;
2.修改加锁,读是不加锁的;
3.线程安全

CopyOnWriteArrayList:
1.使用写复制思想做的:修改的时候加锁,然后先复制一份做修改,完成后在赋值回去
2.不能保证实时一致性,适用于经常读,不经常修改的集合



猜你喜欢

转载自1728197066.iteye.com/blog/2312217
今日推荐