1、为什么引入了集合
面向对象中,数据的封装用对象。存储多个对象时可以用集合或数组。
集合和数组相比较的优势在于集合的长度是可以变化的,而数组在定义好后长度就固定了。另外集合里的各个元素类型也可以不同。
2、集合是高度的抽象形成了集合框架
3、集合对对象的存储方式和数组对数组元素存储方式相识,都是存储元素的地址
如下所示:
定义了一个Collection的子类对象al,把Person类对象的p加入都集合里。
左边是栈区,右边是堆区。执行al。add(p);
Person实例在堆区的地址会复制到堆区的集合里,而不是把实例加入到堆区。
4、集合的增删改查
public static void main(String[] args){
ArrayList al=new ArrayList();
//添加元素(增)
for(int i=0;i<5;i++){
al.add("java"+i);
}
//获取数组元素长度,输出5
sop("size:"+al.size());
//打印数组,输出java0, java1,java2,java3,java4
sop(al);
//删除元素
al。remove("java4");移除了java4这个对象
//清空集合
al.clear();
//判断元素
sop("java03是否存在"+al.contains("java03"));//输出TRUE
还有al。isEmpty();判断是否为空
}
public static void sop(Object obj){//定义函数,减少代码冗余。
System.out.println(obj);
}
5、集合和集合取交集,补集,我们完全可以喝数学学科的集合对比
ArrayList al=new ArrayList();
以上代码会输出al1:java01,jav02
al2:java03,java04,java05,java06
al1.removeAll(al2);去掉al1和al2的相同部分,al剩余的就是al1
更改后输出 al1:java03,jav04
al2:java03,java04,java05,java06。
6、待更新。