Java中的泛型集合框架是一组设计用来存储对象引用的集合类,这些集合类能够使用类型参数来指定它们能够存储的元素类型。泛型集合框架从Java 5开始引入,主要包括以下几个类:
- List - 有序集合,元素可以重复。
- Set - 无序集合,元素不能重复。
- Map - 键值对集合,键和值之间用一对特殊的分隔符(通常是
{}
)表示。
这些集合类都位于java.util
包中。使用泛型集合的好处是能够提供编译时的类型安全检查,减少在运行时因类型转换错误而导致的问题。
下面是泛型的经典应用案例:
使用List
import java.util.ArrayList; import java.util.List; public class GenericListExample { public static void main(String[] args) { List<String> stringList = new ArrayList<String>(); stringList.add("Hello"); stringList.add("World"); // 编译时类型安全检查 // stringList.add(123); // 编译错误 for (String s : stringList) { System.out.println(s); } } }
使用Set
import java.util.HashSet; import java.util.Set; public class GenericSetExample { public static void main(String[] args) { Set<String> stringSet = new HashSet<String>(); stringSet.add("Hello"); stringSet.add("World"); // 自动去重,编译时类型安全检查 // stringSet.add(null); // 编译错误 // stringSet.add(123); // 编译错误 for (String s : stringSet) { System.out.println(s); } } }
使用Map
import java.util.HashMap; import java.util.Map; public class GenericMapExample { public static void main(String[] args) { Map<String, Integer> stringMap = new HashMap<String, Integer>(); stringMap.put("Hello", 1); stringMap.put("World", 2); // 编译时类型安全检查 // stringMap.put(123, "Hello"); // 编译错误 // stringMap.put(null, 123); // 编译错误 for (Map.Entry<String, Integer> entry : stringMap.entrySet()) { System.out.println(entry.getKey() + " -> " + entry.getValue()); } } }
泛型集合框架的应用非常广泛,几乎涉及到需要存储和操作对象集合的任何场景。通过使用泛型,可以确保在编译时期捕获潜在的类型错误,提高程序的稳定性和安全性。