JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

最全的java集合总结知识脑图

wys521 2024-11-30 13:16:06 精选教程 31 ℃ 0 评论

最近总结了下java集合知识,绘制成知识脑图,便于理解记忆。

基本概念

Collection:是集合的根接口,定义了一系列基础方法

Set:是不可重复集,即集合中不能包含重复元素

List:有序集合,集合中允许包含重复元素

Map:是一种key-value的存储集合,不能包含重复的key,每个key只能映射到同一个value

HashMap:根据键的hashcode值进行存储,最多允许一个key的值为null,允许多个value的值为null,默认容量是16,加载因子是0.75f,每次扩容一倍,是一种异步式线程不安全的映射,如果想要实现线程安全,如下即可
Map map = new HashMap<>();

 // 使map变为线程安全 Map map1 = Collections.synchronizedMap(map);

HashTable:是一种遗留类,常用功能与HashMap类似,不过该类继承自Dictionary类,不允许键值为null,默认初始容量是11,加载因子也是0.75f,是一种同步式线程安全的映射,其并发性不如ConcurrentHashMap,因为ConcurrentHashMap引入了分段锁,而HashTable对get/put等所有操作都加了synchronized,相当于锁了整张表,将所有的操作串行化。

ConcurrentHashMap:线程安全的map,允许多个修改操作并发进行,其关键在于使用了分段锁。它使用多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hashtable,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。

LinkedHashMap:是HashMap的一个子类,保存了元素的插入顺序,在遍历时,先得到的元素肯定是先插入的

TreeMap:实现SortedMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。在使用TreeMap时,key必须实现Comparable接口或者在构造TreeMap传入自定义的Comparator,否则会在运行时抛出java.lang.ClassCastException类型的异常。

努力工作,开心生活,放松一下:

专注java职场经验,技术分享,欢迎关注公众号:程序秘籍

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表