package Test;
/**
* 容器(Collection)
* 数组就是一种容器,可以在其中放置对象或基本类型数据
*
* 数组的优势:是一种简单的线性序列,可以快速的访问数组元素,效率高
* 如果从效率和类型检查的角度讲,数组是最好的。
*
* 数组的劣势:不灵活。容量需要事先定义好,不能随着需求的变化而扩容。
* 比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么
* 这样的用户有多少个?我们在写程序时无法确定的。因此,在这里我们就
* 不能使用数组
*
* interface Collection(容器/集合)
* |
* |---+-----------------------|
* interface Set(无序,不可重复) interface List(有序,可重复)
* | |-----+-----|
*(哈希实现类)HashSet (数组实现类)ArrayList LinkedList(列表实现类)
*
* interface Map(Map接口中键和值一一映射. 可以通过键来获取值。)
* |
*(哈希实现类)HashMap
***************************************************************
* 泛型(Generic)
* 泛型是JDK1.5以后增加的,它可以帮助我们建立类型安全的集合。
* 泛型的本质就是“数据类型的参数化”。我们可以把“泛型”理解为数据类型的
* 一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型
*
* 泛型的使用方法:在类的声明处增加泛型列表,如class Name <T,E,V>{类体}.
* 此处,字符可以是任何标识符,一般采用这3个字母
*
* @author pmc
*
*/
public class GenericTest {
public static void main(String[] args) {
MyCollection<String> mc=new MyCollection<String>();
mc.set("张三", 2);
mc.set("8888", 0);
//Integer a=(Integer)mc.get(0);
String a=mc.get(0);
String b=(String)mc.get(2);
System.out.println(a);
System.out.println(b);
}
}
class MyCollection<E>{
Object[] obj=new Object[5];
public void set(E obj,int index){
this.obj[index]=obj;
}
public E get(int index){
return (E)this.obj[index];
}
}