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