1. 集合框架简介
Java集合框架(Java Collections Framework)提供了一套性能优良、使用方便的接口和类,用于存储和操作一组对象。集合框架位于java.util包中,主要包括以下几种接口和类:
- 接口:
Collection、List、Set、Map等。 - 实现类:
ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等。
2. Collection接口
Collection接口是集合框架的根接口,定义了集合的基本操作,如添加、删除、遍历等。List和Set是Collection的两个重要子接口。
2.1 List接口
List接口表示有序的集合,允许重复元素。常见的实现类有ArrayList和LinkedList。
2.1.1 ArrayList
import java.util.ArrayList;import java.util.List;public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println("List: " + list);
list.remove("Banana");
System.out.println("List after removal: " + list);
for (String fruit : list) {
System.out.println(fruit);
}
}}2.2 Set接口
Set接口表示无序的集合,不允许重复元素。常见的实现类有HashSet和TreeSet。
2.2.1 HashSet
import java.util.HashSet;import java.util.Set;public class Main {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
set.add("Apple"); // 重复元素不会被添加
System.out.println("Set: " + set);
set.remove("Banana");
System.out.println("Set after removal: " + set);
for (String fruit : set) {
System.out.println(fruit);
}
}}2.2.2 TreeSet
import java.util.Set;import java.util.TreeSet;public class Main {
public static void main(String[] args) {
Set<String> set = new TreeSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
set.add("Apple"); // 重复元素不会被添加
System.out.println("Set: " + set);
set.remove("Banana");
System.out.println("Set after removal: " + set);
for (String fruit : set) {
System.out.println(fruit);
}
}}3. Map接口
Map接口表示键值对的集合,键不允许重复。常见的实现类有HashMap和TreeMap。
3.1 HashMap
import java.util.HashMap;import java.util.Map;public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Cherry", 30);
System.out.println("Map: " + map);
map.remove("Banana");
System.out.println("Map after removal: " + map);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}}3.2 TreeMap
import java.util.Map;import java.util.TreeMap;public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new TreeMap<>();
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Cherry", 30);
System.out.println("Map: " + map);
map.remove("Banana");
System.out.println("Map after removal: " + map);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}}4. 集合工具类Collections
Collections类提供了许多静态方法,用于操作集合,如排序、查找、反转等。
4.1 排序
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Collections.sort(list);
System.out.println("Sorted List: " + list);
}}4.2 查找
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
int index = Collections.binarySearch(list, "Banana");
System.out.println("Index of Banana: " + index);
}}5. 今日任务
- 使用
ArrayList存储一组整数,并对其进行排序和查找。 - 使用
HashSet存储一组字符串,并尝试添加重复元素,观察结果。 - 使用
HashMap存储一组键值对,并遍历输出所有键值对。
6. 示例代码
import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;public class Main {
public static void main(String[] args) {
// 任务1:ArrayList排序和查找
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
Collections.sort(numbers);
System.out.println("Sorted Numbers: " + numbers);
int index = Collections.binarySearch(numbers, 5);
System.out.println("Index of 5: " + index);
// 任务2:HashSet存储字符串
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
set.add("Apple"); // 重复元素不会被添加
System.out.println("Set: " + set);
// 任务3:HashMap存储键值对
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Cherry", 30);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}}7. 总结
今天的内容涵盖了Java集合框架的基本概念和常用类,包括List、Set、Map接口及其实现类,以及Collections工具类的使用。集合框架是Java编程中非常重要的一部分,务必熟练掌握。明天我们将深入学习泛型。
提示:多动手编写代码,尝试使用不同的集合类和操作方法,理解它们的特点和适用场景。
祝你学习愉快!

















