Java集合框架
Java集合框架是一组用于存储、操作和处理数据的类和接口的集合。它提供了各种实现了常用数据结构的类,如列表、集合、映射等,以满足不同场景下的需求。本文将详细介绍Java集合框架的基本概念、常用接口和类,并提供具体的代码示例。
1. 集合框架概念
Java集合框架主要分为两个接口层次:Collection接口和Map接口。Collection接口是所有集合框架的根接口,它派生出List、Set和Queue等子接口。Map接口则表示键值对映射。
1.1 Collection接口
-
List接口: 有序集合,允许重复元素。
List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); list.add("JavaScript");
-
Set接口: 无序集合,不允许重复元素。
Set<Integer> set = new HashSet<>(); set.add(1); set.add(2); set.add(3);
-
Queue接口: 队列,通常按照先进先出(FIFO)的顺序处理元素。
Queue<String> queue = new LinkedList<>(); queue.offer("Task1"); queue.offer("Task2"); queue.offer("Task3");
1.2 Map接口
-
HashMap: 键值对映射,不保证顺序。
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3);
2. 常用操作示例
2.1 遍历集合
List<String> list = Arrays.asList("Apple", "Banana", "Orange");
// 使用迭代器遍历List
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
// 使用for-each循环遍历List
for (String fruit : list) {
System.out.println(fruit);
}
2.2 使用Map存储键值对
Map<String, Integer> populationMap = new HashMap<>();
populationMap.put("China", 1444216107);
populationMap.put("India", 1393409038);
populationMap.put("United States", 332915073);
// 遍历Map的键值对
for (Map.Entry<String, Integer> entry : populationMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
2.3 使用集合工具类
List<String> colors = Arrays.asList("Red", "Green", "Blue");
List<String> moreColors = Arrays.asList("Yellow", "Purple");
// 合并两个List
List<String> combinedList = new ArrayList<>(colors);
combinedList.addAll(moreColors);
// 查找元素
boolean containsGreen = colors.contains("Green");
// 排序List
Collections.sort(combinedList);
// 反转List
Collections.reverse(combinedList);
3. 集合框架的优势
-
动态大小: 集合框架支持动态调整大小,无需手动管理内存。
-
高性能: 提供了高性能的数据结构和算法,适用于不同的使用场景。
-
类型安全: 泛型的引入使得集合框架更加类型安全,减少了运行时错误的可能性。
-
丰富的方法: 集合框架提供了丰富的方法,方便对集合进行操作、查询和遍历。
Java集合框架是Java编程中不可或缺的一部分,通过熟练使用集合框架,可以更高效地处理各种数据结构,提高代码的可读性和可维护性。
评论区