上一期讲解了如何通过自定义Java数组实现对数组功能的扩展,但又不可避免地产生了其他问题。就是这种数组的普适性很差,只能存取对应类型的数据,如果还要存取其他类型的数据的话,又需要重新编写一个数组类。那么有没有一种办法能够只定义一次数组类就可以保存常见的数据类型呢?这就是接下来讲解的内容
一、泛型介绍
1、引言
在之前说过,Java是一门面向对象的编程语言,那么我们同样也可以将想要存入数组中的元素视为对象。而Java语言中,所有的类将会继承Object类,因此,我们可以将这些数据类型视为Object类中的属性。这一过程是将实际类型的变量抽象为一个Object变量。因此泛型就是通过对某些类型的抽象,将其转化为参数形式。
二、泛型数组的定义
1、泛型类定义
可以在类名后使用<>括号来声明泛型,一般情况下有T、K、E、V等
public class newArr1<E> {
Class<E> typeE; //声明类接收的数据类型
E [] array; //定义泛型数组
int size = 0; // 设置数组长度
int orgSize = 0; //数组初始长度
}
2、数组扩容
public void arrExtend(E [] arr){
//判断数组空间是否充足
if(size + 1 == orgSize){
E [] newArray = (E[]) Array.newInstance(typeE , 2 * orgSize);
orgSize *= 2;
for (int i = 0; i < arr.length; i++) {
newArray[i] = arr[i];
}
this.array = newArray;
}
}
泛型数组的其他操作和普通数组定义相同,只需将传入的值由原先的int改为E泛型即可,具体内容请参考:
(71条消息) Java数组(1)_️771的博客-CSDN博客