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()

 

posted on 2018-03-22 19:06  song.yan  阅读(150)  评论(0编辑  收藏  举报