Java中的集合类有哪些?如何分类的?
1. Java集合类的分类
Java中的集合类主要分为两大类:集合(Collection) 和 映射(Map) 。
1.1 集合(Collection)
集合是单个对象的集合,可以存储多个元素。集合又可以进一步分为以下几种:
- 列表(List) :有序集合,可以包含重复的元素。常见的实现类有
ArrayList
、LinkedList
等。 - 集合(Set) :不允许重复的集合。常见的实现类有
HashSet
、LinkedHashSet
、TreeSet
等。 - 队列(Queue) :用于存储和检索元素的集合,通常按照先进先出(FIFO)的顺序。常见的实现类有
LinkedList
、PriorityQueue
等。
1.2 映射(Map)
映射是键值对的集合,每个键映射到一个值。常见的实现类有 HashMap
、TreeMap
、LinkedHashMap
等。
2. 实际场景与代码示例
2.1 列表(List)
假设我们要存储一个学生的课程列表,可以使用 ArrayList
。
csharp
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> courses = new ArrayList<>();
courses.add("Java");
courses.add("Python");
courses.add("C++");
System.out.println("课程列表: " + courses);
System.out.println("第二门课程: " + courses.get(1)); // 输出 Python
}
}
2.2 集合(Set)
假设我们要存储一个班级的学生姓名,不允许重复,可以使用 HashSet
。
java
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> students = new HashSet<>();
students.add("Alice");
students.add("Bob");
students.add("Alice"); // 重复的元素不会被添加
System.out.println("学生集合: " + students);
}
}
2.3 队列(Queue)
假设我们要模拟一个打印任务队列,可以使用 LinkedList
。
java
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> printQueue = new LinkedList<>();
printQueue.add("Document1");
printQueue.add("Document2");
System.out.println("打印队列: " + printQueue);
System.out.println("打印任务: " + printQueue.poll()); // 输出 Document1
System.out.println("打印队列: " + printQueue);
}
}
2.4 映射(Map)
假设我们要存储学生的成绩,可以使用 HashMap
。
java
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 85);
System.out.println("成绩表: " + scores);
System.out.println("Alice的成绩: " + scores.get("Alice")); // 输出 90
}
}
3. 总结
- 列表(List) :有序,可以重复。
- 集合(Set) :无序,不允许重复。
- 队列(Queue) :先进先出。
- 映射(Map) :键值对,键唯一。