package 泛型1;
/**
* 定义一个泛型类,并且 里面可以同时传入三个不同类型的数据
*/
public class GenericsArrayList<T,K,B> {
private T[] arr1;
private K[] arr2;
private B[] arr3;
private int index;
private int index2;
private int index3;
//默认的构造方法
@SuppressWarnings("unchecked")
public GenericsArrayList() {
arr1 = (T[]) new Object[10];
arr2 = (K[]) new Object[10];
arr3 = (B[]) new Object[10];
}
//重载构造方法,初始化数组的大小
@SuppressWarnings("unchecked")
public GenericsArrayList(int size) {
arr1 = (T[]) new Object[size];
arr2 = (K[]) new Object[size];
arr3 = (B[]) new Object[size];
}
//定义增加一个元素的方法
public void add(T var,K var2,B var3) {
arr1[index++] = var;
arr2[index2++] = var2;
arr3[index3++] = var3;
}
//定义返回一个元素的方法
public T geteLme(int index) {
return arr1[index];
}
public K geteLme2(int index) {
return arr2[index];
}
public B geteLme3(int index) {
return arr3[index];
}
//同时返回三个元素的方法
public Object get(int index) {
return arr1[index]+" "+arr2[index]+" "+arr3[index];
}
}
package 泛型1;
/**
* 入口函数类,实现GenericsArryList中的各个方法
*/
public class TestGenericsArrayList {
public static void main(String[] args) {
//创建一个泛型的对象,并初始化各数组
GenericsArrayList<Integer,String,Boolean> arry = new GenericsArrayList<Integer,String,Boolean>();
arry.add(1,"小红",true);
arry.add(2, "小明",false);
arry.add(3, "小张",true);
//打印出各个类型的元素
System.out.println("分别输出各个类型的数据如下:");
System.out.print(arry.geteLme(0)+" ");
System.out.print(arry.geteLme(1)+" ");
System.out.println(arry.geteLme(2));
System.out.print(arry.geteLme2(0)+" ");
System.out.print(arry.geteLme2(1)+" ");
System.out.println(arry.geteLme2(2));
System.out.print(arry.geteLme3(0)+" ");
System.out.print(arry.geteLme3(1)+" ");
System.out.println(arry.geteLme3(2));
System.out.println("一起输出各个类型的数据如下:");
System.out.println(arry.get(0));
System.out.println(arry.get(1));
System.out.println(arry.get(2));
}
}
程序运行结果:
分别输出各个类型的数据如下:
1 2 3
小红 小明 小张
true false true
一起输出各个类型的数据如下:
1 小红 true
2 小明 false
3 小张 true