1.集合:数组长度固定, 集合容量动态扩展;
只能通过数组下标int获得 key-value方便查找
----------------------------------------------------------------------------------------
Collection Map
list序列 Queue队列 Set集 HashMap(key-value)
ArrayList LinkedList HashSet
存储一个个对象(单身宿舍) 一对一对的键值对
--------------------------------------------------------------------------------------------
2.注意:当一个对象(比如向list中add())存入集合都会变成
Object类型,取出时也是Object,需要进行类型转换;
--------------------------------------------------------------------------------------------
3.泛型(只能是引用类型,基本类型不行,如要使用就用他们的包装类int-integer):集合中的元素可以是任何类型的对象,比如向一个Students类中添加字符串,这时取出时候就会出现报错;
泛型是规定了某个集合只可以存放特定类型的对象(比如售票机只能识别钱),会在编译期间进行类型检查,可以直接按指定类型获取集合元素
public List<Course> courses;当前list只能存放course类型的元素,<>中的即是泛型; public 当前类(){ this.courses = new ArrayList<Course>();}
4.再用foreach取出集合元素的时候,如果未定义类型,则用for(Object obj:coursesToSelect){Course cr = (Course)obj; cr.id;cr.name}取出元素;如果已经使用泛型定义则使用for(Course cr:courses){//泛型的好处 cr.id; cr.name;}
5.泛型集合可以添加泛型的子类的对象实例