泛型集合12.3.4 泛型集合泛型的场景:定义泛型:12.3.5 Colletions工具类 12.3.4 泛型集合 概念:参数化类型、类型安全的集合,强制集合元素的类型必须一致; 特点: 编译时即可检查,而非运行时抛出异常; 访问时,不必类型转换(拆箱); 不同泛型之间引用不能相互赋值,泛型不存在多态; import java.util.List; import java.util.Vector; import java.util.ArrayList; import java.util.LinkedList; public class TestBasicGeneric { public s Java中的泛型是一种强大的工具,它允许我们在编程时指定集合(如List、Set、Map等)的元素类型,从而提供类型安全性和编译时的错误检查。在标题和描述中,我们关注的是“泛型集合”这个主题,它是Java集合框架的一部分。 泛型集合的概念可以理解为参数化类型,即将类型作为参数传递给集合类。这意味着我们可以限制集合只能存储特定类型的对象。例如,当我们创建一个`List<String>`时,我们确保这个列表只能包含字符串,不能插入其他类型的元素。这与非泛型集合(如`List`或`ArrayList`)形成对比,非泛型集合可以存储任何类型的对象,但可能导致运行时类型转换异常。 泛型集合的特点主要包括以下几点: 1. **类型安全**:在编译时期就能检测到类型错误,而不是等到运行时才抛出异常。 2. **无需类型转换**:当我们从泛型集合中取出元素时,不需要进行强制类型转换(如拆箱操作),因为编译器已经知道元素的类型。 3. **无多态性**:由于泛型擦除,不同泛型之间的引用不能直接相互赋值。例如,`List<String>`不能赋值给`List<Object>`,即使String是Object的子类。 在提供的代码示例中,可以看到如何使用泛型。通过`List<Student>`创建了一个存储`Student`对象的列表,然后尝试添加不同类型的数据,但编译器会阻止这些不匹配的添加操作。接着,展示了如何使用不同的集合实现,如`ArrayList`、`Vector`和`LinkedList`。 此外,还提到了泛型的定义方式: - **类的泛型**:在创建类的实例时,可以为类定义的泛型进行参数化赋值。例如,`MyClass mc2 = new MyClass();`,这里的`MyClass`可能定义了某种泛型。 - **接口的泛型**:在实现接口时,可以为接口定义的泛型进行参数化赋值。例如,`MyInterface`接口中可能有一个泛型方法`method(T t)`,在实现这个接口的类中,如`MyLmplClass`和`MyLmplClass2`,需要指定具体的类型。 还提到了`Comparable2`接口,这是一个泛型接口,它的`compareTo(E obj)`方法用于比较两个对象,这里的`E`代表比较的对象类型。`MyStudent`类实现了`Comparable2`接口,表明`MyStudent`对象可以与其他`MyStudent`对象进行比较。 泛型是Java中非常重要的一个特性,它增强了代码的类型安全性和可读性,减少了不必要的类型转换,并提供了更清晰的接口定义。在实际开发中,熟练掌握泛型可以避免许多潜在的运行时错误,提高程序的健壮性。
剩余7页未读,继续阅读
- 粉丝: 3
- 资源: 979
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助