面试题答案
一键面试- Java泛型在集合操作中的主要作用:
- 类型安全:在编译期就可以检查集合中元素的类型,避免在运行时出现
ClassCastException
。例如,在没有泛型时,向集合中添加了错误类型的元素,直到取出该元素并进行类型转换时才会发现错误,而使用泛型可以在编译时就发现这类错误。 - 代码复用:通过泛型,集合类可以被设计成适用于多种类型,而不需要为每种类型都创建一个单独的类。比如
ArrayList
可以通过泛型适用于存储String
、Integer
等不同类型的数据,而不需要创建StringArrayList
、IntegerArrayList
等多个类。
- 类型安全:在编译期就可以检查集合中元素的类型,避免在运行时出现
- 创建只能存储字符串的ArrayList示例:
import java.util.ArrayList;
import java.util.List;
public class GenericExample {
public static void main(String[] args) {
// 创建一个只能存储字符串的ArrayList
List<String> stringList = new ArrayList<>();
stringList.add("Hello");
stringList.add("World");
// 以下代码会在编译时报错,因为类型不匹配
// stringList.add(123);
for (String str : stringList) {
System.out.println(str);
}
}
}
在上述代码中,List<String>
明确指定了ArrayList
只能存储String
类型的元素,增强了类型安全性。在编译时,如果试图向stringList
中添加非String
类型的元素,编译器会报错。