package TestCollect;
import java.util.ArrayList;
import java.util.List;
/**
* 泛型
* 1)传入什么类型就是什么类型
* 2)将结果传递给函数
*/
public class TestCollection_01 {
public static void main(String[] args) {
// 第一个泛型对象
MyCollection<Integer> mc = new MyCollection<Integer>();
mc.set(112, 0);
mc.set(55, 1);
System.out.println(mc.get(0));
MyCollection<String> m = new MyCollection<String>();
System.out.println("*******************************************************");
// 第二个泛型对象
m.set("hello", 0);
m.set("world", 1);
System.out.println(m.get(0));
System.out.println(m.get(1));
System.out.println("****************** 泛型Arraylist *************************");
fanType();
System.out.println("******************** 自定义泛型 ***********************************");
fanType2();
}
public static void fanType() {
List list = new ArrayList();
list.add("aaa");
list.add(11);
System.out.println(list.get(0));
System.out.println(list.get(1));
}
public static void fanType2() {
MyCollection c = new MyCollection();
c.set(100, 0);
c.set("hello", 1);
System.out.println(c.get(0));
System.out.println(c.get(1));
}
}
class MyCollection<E> {// E:表示泛型;如果在声明的时候指定数据的类型,则传入的值必有在是这个类型,如果不传的话,则可以是任何的数据类型
Object[] objs = new Object[5];
// 获取数据
public E get(int index) {// E:表示泛型;
return (E) objs[index];
}
// 设置数据
public void set(E e, int index) {// E:表示泛型;
objs[index] = e;
}
}