Java 中的集合
阅读:21
点赞:0
在 Java 中,集合的层次结构用于对元素或对象进行分组,其中每个类都有其子类和方法。虽然集合不接受原始类型,但“数组”类允许包含多个相同类型的元素,包括原始类型。
1. 集合框架概述
集合框架的相关方法位于 JDK(Java 开发工具包)的 java.util
包中。主要的接口有 List
、Set
和 Map
。
1.1 Generics(泛型)
使用符号 <>
(菱形符号)来定义泛型类型。常见的类型参数包括:
-
E:元素 -
K:键 -
N:数字 -
T:类型 -
V:值
2. Comparator 与 Comparable
这两个接口用于对集合进行排序:
-
Comparable:提供单一排序序列,影响原始类。 -
Comparator:提供多种排序序列,而不修改原始类。
3. 集合类型比较
3.1 List
-
允许重复元素,保持插入顺序。 -
实现示例: ArrayList
和LinkedList
。
3.2 Set
-
不允许重复元素。 -
实现示例: -
HashSet:使用哈希表存储,无特定顺序。 -
TreeSet:使用平衡二叉树,保持升序。 -
LinkedHashSet:使用哈希表和双向链表,保持插入顺序。
-
3.3 Map
-
将键映射到值。 -
实现示例: -
HashMap:使用哈希表存储,无特定顺序。 -
TreeMap:使用平衡二叉树,保持键的升序。 -
LinkedHashMap:使用哈希表和双向链表,保持插入顺序。
-
4. 具体实现示例
4.1 ArrayList 示例
import java.util.ArrayList;
public class ExampleArrayList {
public static void main(String[] args) {
// 创建一个可调整大小的数组列表
ArrayList<String> list = new ArrayList<>();
// 添加元素
list.add("Apple"); // 添加苹果
list.add("Banana"); // 添加香蕉
// 访问元素
System.out.println(list.get(0)); // 输出第一个元素,结果是 "Apple"
}
}
4.2 HashSet 示例
import java.util.HashSet;
public class ExampleHashSet {
public static void main(String[] args) {
// 创建一个哈希集合
HashSet<String> set = new HashSet<>();
// 添加元素
set.add("Apple"); // 添加苹果
set.add("Banana"); // 添加香蕉
set.add("Apple"); // 再次添加苹果,不会重复
// 输出集合的大小
System.out.println(set.size()); // 输出 2
}
}
4.3 HashMap 示例
import java.util.HashMap;
public class ExampleHashMap {
public static void main(String[] args) {
// 创建一个哈希映射
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("Apple", 1); // 添加苹果,数量为 1
map.put("Banana", 2); // 添加香蕉,数量为 2
// 通过键访问值
System.out.println(map.get("Apple")); // 输出苹果的数量,结果是 1
}
}
5. 注意事项
-
在 Set
中,第一个添加的元素是第一个被返回的元素。 -
在 Map
中,put
方法会更新或创建一个键值对。 -
Map
接口在创建集合之前无需创建类,可以直接通过键查找,无需使用循环。
6. 结论
通过理解 Java 的集合框架,我们可以高效地管理数据。各种集合类型如 List
、Set
和 Map
各自有不同的特性和应用场景,适当选择可以提高程序的性能和可读性。