java容器
前言
Java 容器(集合)是开发中最常用工具,也是笔试、面试必考点。很多同学刚学时容易把 ArrayList、HashMap、HashSet 搞混,这篇文章用最简单的结构帮你一次性梳理明白。
一、Java 容器整体框架
Java 容器分为两大顶层接口,所有集合都从这里扩展:
1. Collection:存储单个对象
2. Map:存储键值对(key-value)
记住这个大框架,就不会乱。
二、Collection 三大分支
1. List:有序、可重复、有索引
- ArrayList
底层数组,查询快,增删慢,线程不安全
- LinkedList
底层链表,增删快,查询慢
- Vector
线程安全,但效率低,基本不用
使用场景:需要有序、可重复、按下标查找时用 List。
2. Set:无序、不可重复(自动去重)
- HashSet:去重、速度最快、无序
- LinkedHashSet:保持插入顺序
- TreeSet:可自动排序
使用场景:需要去重、不关心顺序时用 Set。
3. Queue:队列(先进先出 FIFO)
- LinkedList
- PriorityQueue 优先级队列
三、Map 体系:key 唯一的键值对
Map 存储 key-value 结构,key 不能重复。
- HashMap:最常用,线程不安全,效率高,允许 null
- LinkedHashMap:保留插入顺序
- TreeMap:key 可排序
- Hashtable:线程安全,效率低,不推荐
- ConcurrentHashMap:高并发安全,工作常用
四、高频考点:几组核心区别
1. ArrayList vs LinkedList
查询多 → ArrayList
增删多 → LinkedList
2. HashMap vs Hashtable
HashMap:线程不安全,允许 null
Hashtable:线程安全,不允许 null
3. HashSet vs TreeSet
HashSet:快、无序
TreeSet:可排序
五、代码示例(直接复制运行)
1. List 示例
java
import java.util.ArrayList;
import java.util.List;
public class ListDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("容器");
list.add("List");
list.add("Java"); // 可重复
System.out.println(list);
System.out.println("下标1: " + list.get(1));
}
}
2. Set 示例
java
import java.util.HashSet;
import java.util.Set;
public class SetDemo {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("Java");
set.add("容器");
set.add("Set");
set.add("Java"); // 自动去重
System.out.println(set);
}
}
3. Map 示例
java
import java.util.HashMap;
import java.util.Map;
public class MapDemo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("name", "Java容器");
map.put("type", "Map");
System.out.println(map.get("name"));
System.out.println(map);
}
}
六、一句话使用指南
- 需要有序可重复、按索引查找 → List
- 需要自动去重 → Set
- 需要键值对、快速查找 → Map
更多推荐

所有评论(0)