1,集合,数组存放的全是地址,不可能是对象。
Person p = new Person();
ArrayList al= new ArrayList();
al.add(p);
原理图:
在栈内存中,存放的是引用,所以一定有:p,al
在堆内存中,一定有个Person对象,和一个ArrayList对象,并且给他们分配地址(假设为:0x001,0x002)
当add(p)的时候,是将p的地址值添加到堆内存的ArrayList对象中
2,取交集操作的时候,是将连个集合的交集赋给前面的集合,后面的集合元素不变,并且返回一个布尔值,用来表示两个集合是否有交集
//创建两个arraylist对象 Collection al = new ArrayList(); Collection al2 = new ArrayList(); //al1添加元素 al.add("name1"); al.add("name4"); al.add("name3"); //al2添加元素 al2.add("name4"); al2.add("name1"); al2.add("name9"); //输出操作前的集合 System.out.println("al1: "+al); System.out.println("al2: "+al2); //取交集操作 System.out.println(al.retainAll(al2)); //取出操作后的集合 System.out.println("al1: "+al); System.out.println("al2: "+al2);
3,集合的共性方法
获取属性值:size(),hashCode()
增:add(),addall()
删:remove(),removeAll(),clear()
判断:contains(),isEmpty()
取交集:retainAll()
转换成数组:toArray()
取出元素:iterator()