Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。
1.List - 有序且可重复的数据清单
概念:
List就像一个购物清单,你可以按照加入顺序存放和检索项目,而且同一个物品可以出现多次。
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// 创建一个ArrayList实例,它是List接口的一个实现类
List<String> fruits = new ArrayList<>();
// 添加元素
fruits.add("苹果");
fruits.add("香蕉");
fruits.add("苹果"); // 允许重复添加
// 访问和修改元素
fruits.set(1, "橙子"); // 将第二个元素替换为"橙子"
// 输出所有元素
System.out.println(fruits); // 输出: [苹果, 橙子, 苹果]
// 按索引获取元素
String firstFruit = fruits.get(0);
System.out.println(firstFruit); // 输出: 苹果
}
}
2.Set - 无序且唯一的元素集合
概念:
Set就像是一个不包含重复项的抽屉,你往里放东西的时候,系统会自动检查并排除已存在的元素,同时不保证元素的添加顺序。
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
// 创建一个HashSet实例,它是Set接口的一个实现类
Set<String> countries = new HashSet<>();
// 添加元素
countries.add("中国");
countries.add("美国");
countries.add("中国"); // 尝试添加重复元素,实际不会增加新元素
// 输出所有元素
System.out.println(countries); // 输出: [美国, 中国]
// 使用contains()检查元素是否存在
boolean hasChina = countries.contains("中国");
System.out.println(hasChina); // 输出: true
}
}
3.Map - 键值对映射表
概念:
Map像是一个电话簿,每个条目都有一个唯一的键和与之关联的值,键必须唯一,而值则可以重复。
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
// 创建一个HashMap实例,它是Map接口的一个实现类
Map<String, Integer> phoneBook = new HashMap<>();
// 添加键值对
phoneBook.put("张三", 12345678);
phoneBook.put("李四", 87654321);
phoneBook.put("王五", 12345678); // 键不同,值可以重复
// 根据键获取值
int zhangSanPhone = phoneBook.get("张三");
System.out.println(zhangSanPhone); // 输出: 12345678
// 检查是否包含某个键
boolean hasZhangSan = phoneBook.containsKey("张三");
System.out.println(hasZhangSan); // 输出: true
}
}
总结
Java集合框架为程序设计提供了灵活多样的数据结构支持。List适合需要保持元素顺序且可能包含重复元素的场景;Set适用于元素唯一性至关重要的情况;而Map则用于映射关系的管理,非常适合用来模拟现实世界中的各种一对一关联关系。理解并熟练运用它们,能极大地提高代码的效率和可读性。
练习
1. 创建一个List,存储一系列学生的名字,并按字母顺序排序后输出。
2. 实现一个Set,用于存储一系列整数,并确保没有重复数字。
3. 构建一个Map,存储各个城市的经纬度信息,并根据城市名查询对应的经纬度坐标。
亲爱的读者,感谢您关注与支持我的博客。您的每一份鼓励都是我前行的动力。若我的文章曾给您带来收获或启发,欢迎打赏支持。打赏款项将用于提升内容质量,为您提供更优质的阅读体验。无论结果如何,都感恩您的陪伴,让我们共同在知识的世界里探索前行!