Java集合框架概述¶
Java集合框架(Java Collections Framework)是Java编程语言中用于存储和操作一组对象的标准化架构。它提供了一套接口和类,使得开发者能够高效地处理数据集合。集合框架的核心思想是将数据的存储与操作分离,从而提高了代码的可重用性和灵活性。
1. 集合框架的基本结构¶
Java集合框架主要由以下几个部分组成:
- 接口(Interfaces):定义了集合的基本操作,如添加、删除、遍历等。
- 实现类(Implementations):提供了接口的具体实现,如
ArrayList
、HashSet
等。 - 算法(Algorithms):提供了对集合进行操作的方法,如排序、搜索等。
1.1 常用接口¶
Java集合框架中的常用接口包括:
- Collection:是所有集合类的根接口,定义了集合的基本操作。
- List:有序集合,允许重复元素。
- Set:无序集合,不允许重复元素。
- Map:存储键值对,键不允许重复。
1.2 常用实现类¶
- ArrayList:基于动态数组实现的List。
- LinkedList:基于链表实现的List。
- HashSet:基于哈希表实现的Set。
- TreeSet:基于红黑树实现的Set。
- HashMap:基于哈希表实现的Map。
- TreeMap:基于红黑树实现的Map。
2. 代码示例¶
2.1 使用ArrayList存储和遍历元素¶
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
// 创建一个ArrayList对象
List<String> fruits = new ArrayList<>();
// 添加元素
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 遍历元素
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
解释: - ArrayList
是一个动态数组,可以自动调整大小。 - add()
方法用于向列表中添加元素。 - 使用增强的for
循环遍历列表中的元素。
2.2 使用HashSet存储唯一元素¶
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
// 创建一个HashSet对象
Set<String> cities = new HashSet<>();
// 添加元素
cities.add("New York");
cities.add("London");
cities.add("Paris");
cities.add("New York"); // 重复元素不会被添加
// 遍历元素
for (String city : cities) {
System.out.println(city);
}
}
}
解释: - HashSet
是一个不允许重复元素的集合。 - 即使尝试添加重复元素,集合中也不会包含重复项。 - 使用增强的for
循环遍历集合中的元素。
2.3 使用HashMap存储键值对¶
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
// 创建一个HashMap对象
Map<String, Integer> population = new HashMap<>();
// 添加键值对
population.put("New York", 8419000);
population.put("London", 8900000);
population.put("Paris", 2148000);
// 获取并打印值
System.out.println("Population of New York: " + population.get("New York"));
// 遍历键值对
for (Map.Entry<String, Integer> entry : population.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
解释: - HashMap
存储键值对,键不允许重复。 - put()
方法用于添加键值对。 - get()
方法用于根据键获取值。 - 使用entrySet()
方法遍历键值对。
3. 练习题¶
3.1 简单练习¶
题目:创建一个ArrayList
,添加5个不同的整数,然后打印出列表中的所有元素。
提示:使用add()
方法添加元素,使用增强的for
循环遍历列表。
3.2 中等练习¶
题目:创建一个HashSet
,添加10个字符串(其中包含重复的字符串),然后打印出集合中的所有元素。观察输出结果,解释为什么某些元素没有出现在集合中。
提示:HashSet
不允许重复元素,重复的字符串不会被添加到集合中。
3.3 复杂练习¶
题目:创建一个HashMap
,存储5个国家的名称及其首都。编写一个方法,接受国家名称作为参数,并返回该国家的首都。如果国家不存在于映射中,则返回“Unknown”。
提示:使用get()
方法获取值,使用containsKey()
方法检查键是否存在。
4. 总结¶
- 集合框架:Java集合框架提供了一套标准化的接口和类,用于存储和操作一组对象。
- 常用接口:
Collection
、List
、Set
、Map
是集合框架中最常用的接口。 - 常用实现类:
ArrayList
、LinkedList
、HashSet
、TreeSet
、HashMap
、TreeMap
是常用的集合实现类。 - 代码示例:通过
ArrayList
、HashSet
、HashMap
的示例代码,展示了如何使用这些集合类进行数据的存储和操作。 - 练习题:通过简单的、中等的和复杂的练习题,帮助读者巩固对集合框架的理解和应用。
通过本章的学习,你应该对Java集合框架的基本结构和常用接口有了初步的了解,并能够使用常见的集合类进行编程。