容器:
程序中的“容器”也被用来容纳和管理数据。
数组作为一种容器,可以快速地访问数组元素,效率高。但是,容量需要事先定义好,不能随着需求的变化而扩容。
容器接口的层次:
1.Collection接口
List子接口(有序可重复):ArrayList,LinkedList,Vector
Set子接口(无序不可重复):Hashset,Treeset
2.Map接口(存储键值对)
Hashmap,Treemap
泛型:
形象地说,泛型就是容器的标签。我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。
我们可以在类的声明处增加泛型列表,如:<T,E,V>。泛型E像一个占位符一样表示“未知的某个数据类型”,我们在真正调用的时候传入这个“数据类型”。
具体格式:
定义类时:class 类名 <E> { }
根据类创建对象时(String也可根据需要换成其他类型):类名 <String> 对象名 = new 类名 <String> ()
在类中写方法时,也要根据需要传入泛型,作为形参。调用该方法时,再具体化。
原文:https://www.cnblogs.com/augenstern/p/12569024.html