Java 容器类是 Java 集合框架(Java Collections Framework, JCF)的核心部分,用于存储和操作数据集合。容器类分为两大类:Collection 和 Map。
- Collection:存储单一元素的集合,分为 List、Set 和 Queue 三类。
- Map:存储键值对(Key-Value)的集合。
Collection 接口及其实现类
List(有序、可重复)
List 允许元素重复且维护插入顺序,支持索引访问。
常用实现类:
- ArrayList:基于动态数组实现,随机访问快,增删慢。
List<String> list = new ArrayList<>(); list.add("Java"); list.get(0); // 访问元素 - LinkedList:基于双向链表实现,增删快,随机访问慢。
List<String> linkedList = new LinkedList<>(); linkedList.add("Python"); linkedList.addFirst("C++"); // 头部插入 - Vector:线程安全的动态数组,性能较差,已被
ArrayList取代。
Set(无序、不可重复)
Set 不允许多个相同元素,通常用于去重。
常用实现类:
- HashSet:基于哈希表实现,无序,查询速度快。
Set<String> hashSet = new HashSet<>(); hashSet.add("Java"); hashSet.contains("Java"); // 检查存在性 - LinkedHashSet:在
HashSet基础上维护插入顺序。 - TreeSet:基于红黑树实现,元素按自然顺序或自定义比较器排序。
Set<Integer> treeSet = new TreeSet<>(); treeSet.add(3); treeSet.add(1); // 自动排序为 [1, 3]
Queue(队列)
Queue 遵循先进先出(FIFO)或优先级规则。
常用实现类:
- LinkedList:可作为普通队列使用。
Queue<String> queue = new LinkedList<>(); queue.offer("A"); // 入队 queue.poll(); // 出队 - PriorityQueue:基于堆实现,按优先级出队。
Queue<Integer> pq = new PriorityQueue<>(); pq.offer(5); pq.offer(1); // 出队顺序为 1, 5
Map 接口及其实现类
Map 存储键值对,键不可重复。
常用实现类:
- HashMap:基于哈希表实现,键无序,允许
null键/值。Map<String, Integer> map = new HashMap<>(); map.put("Java", 1); map.get("Java"); // 获取值 - LinkedHashMap:维护插入顺序或访问顺序。
- TreeMap:基于红黑树实现,键按自然顺序或比较器排序。
Map<String, Integer> treeMap = new TreeMap<>(); treeMap.put("B", 2); treeMap.put("A", 1); // 键排序为 A, B - Hashtable:线程安全的哈希表,不允许
null键/值,已被ConcurrentHashMap取代。
线程安全容器
- ConcurrentHashMap:分段锁实现的线程安全
HashMap。 - CopyOnWriteArrayList:写时复制的线程安全
List。 - BlockingQueue:阻塞队列,如
ArrayBlockingQueue、LinkedBlockingQueue。
工具类 Collections
提供静态方法操作集合,如排序、同步包装等。
List<Integer> numbers = Arrays.asList(3, 1, 2);
Collections.sort(numbers); // 排序为 [1, 2, 3]
Collections.synchronizedList(numbers); // 转换为线程安全列表
总结
- List:有序可重复,常用
ArrayList、LinkedList。 - Set:无序不可重复,常用
HashSet、TreeSet。 - Queue:队列,常用
LinkedList、PriorityQueue。 - Map:键值对,常用
HashMap、TreeMap。 - 线程安全场景优先使用
ConcurrentHashMap、CopyOnWriteArrayList。
1597



被折叠的 条评论
为什么被折叠?



