java集合分为哪几大类

说白了,Java集合系统就像一个仓库,分为两类:单列集合和双列集合。
单列集合就像一排架子,可以容纳许多单独的物品,而双列集合 Map 就像一个抽屉。
每个抽屉都包含一个物品和一个标签,以便快速找到它。

我们先来说说最重要的事情。
在单列集合中,List就像一排有序的书架,例如ArrayList。
它就像一个动态数组,查询快但增删改慢。
适合查询频繁的场景。
LinkedList就像双向链表,头尾添加和删除速度快,但随机访问速度慢,适合频繁插入和删除的场景。

还有一点就是Set集合就像一个无序的架子,不允许重复,比如HashSet,它基于哈希表,查询、增删效率很高。
LinkedHashSet记录插入顺序,而TreeSet可以按照元素的顺序排列。

一开始我以为Map集合是一个简单的键值对,但实际上它更复杂。
比如HashMap就是基于数组+链表/红黑树实现的。
键乱序且线程不安全,但适合高频键值对查询。
LinkedHashMap可以维护插入顺序,而TreeMap可以根据Key的自然顺序或自定义排序。

等一下,还有一件事。
Map集合中的ConcurrentHashMap是线程安全的,支持高并发,并且有优化的性能,非常适合多线程环境。

很多人都没有注意到这一点。
如果你需要一个线程安全且高性能的集合,我认为ConcurrentHashMap值得尝试。
不过需要注意的是,Hashtable虽然是线程安全的,但是性能较差,现在已经很少使用了。

java中有哪些集合

列表:有序且可重复,通过索引访问。
ArrayList:动态数组,查询快,插入慢。
泛型于 2 006 年在 JDK 1 .5 中引入。
LinkedList:双向链表,插入删除速度快,但查询速度慢。
JDK 1 .1 于1 9 9 7 年添加。

集合:无序且不可重复,通过散列或排序保证唯一。
HashSet:哈希表,O(1 )查询。
泛型于 2 004 年被添加到 JDK 1 .5 中。
LinkedHashSet:哈希+链表,保持插入顺序。
2 004 年JDK 1 .5 中添加了泛型。

Map:键值对,键是唯一的。
HashMap:哈希表,无序键,O(1 )查询。
JDK 1 .1 于 1 9 9 7 年添加。
TreeMap:红黑树,键排序,O(logn)查询。
JDK 1 .1 于1 9 9 7 年添加。

不要使用Vector,使用ConcurrentHashMap而不是Hashtable。
根据您的需要进行选择。

java中常用的集合有哪些,有什么区别,底层是如何实现的

这就是陷阱:过度依赖ArrayList而忽略了LinkedList和HashSet的适用场景。

实用提醒:根据操作类型(增、删、查、修改)和性能需求,适当选择集合类型。