容器也称位集合,用来装其他对象的对象
数组就是容器,可以存放对象或者基本数据类型
数组优势:简单线性序列,效率高。
数组劣势:不够灵活,容量不能随着需求变化而扩容。
容器的分类:
Collection()(接口)
-Set(接口):没有顺序,不可重复
----HashSet
-List(接口):有顺序,可以重复
----ArrayList
----LinkedLIst
Map(接口)
----HashMap
泛型相当于在容器上贴了标签,帮助我们建立类型安全的集合。
泛型的本质:数据类型的参数化
我们可以把泛型理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。
例:
容器相关类都定义了泛型,开发中,使用容器类都要使用泛型。这样容器的存储数据,读取数据都避免了大量的类型判断。
List、Map、Set、Iterator源码
public intefrace List<E> extends Collection<E>{}
public interface Set<E> extends Collection<E>{}
public interface Map<K,V>{}
public interface Collection extends Iterable<E>{}
public interface Iterable<E>{}