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、待更新。