集合框架

Collection

 List和Set

add()

contains    

size,clear,isEmpty

 addAll与containsAll

-------------------------------淫荡分割线---------------------------------

java提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。

这种数据结构成为集合:Collection。

Collection是一个接口,其定义了集合的相关功能方法。

1. List和Set

Collection派生出了两个子接口,一个是List另一个则是Set。
List:称为可重复集,顾名思义,该集合中是允许存放重复元素的,那么何为重复元素?

    重复元素指的并非是同一个元素,而是指equals方法比较为true的元素。
Set:称为不可重复集,所以,该集合中是不能将相同的元素存入集合两次,同List,

    这里相同指的也是两个元素的equals比较结果为true。 不会出现true的情况

 

2. 集合持有对象的引用


集合当中 放的都是引用 是地址

集合中存储的都是引用类型的元素,那么引用类型变量实际上存储的是对象的“地址”,所以实际上集合只存储了元素对象在堆中的地址

而并不是将对象本身存入了集合中。

E 类型object

 

3.add()方法

Collection定义了一个add方法用于向集合中添加新元素。 该方法定义为:
boolean add(E e)
该方法会将给定的元素添加进集合,若添加成功则返回true,否则返回false(Set集合里面不能放重复元素)

public class TCollection {
    public static void main(String[] args) {
        /*
         * boolean add(E e)
         * 向集合中添加元素 添加成功返回true
         */
        
        Collection collection =new ArrayList();
        collection.add("a");
        collection.add('b');
        collection.add("c");
        System.out.println(collection);
        
    }
    
}

4. contains方法

boolean contains(Object o)
该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。
这里需要注意的是,集合在判断元素是否被包含在集合中是使用元素的equals的比较结果。
(o==null ? e==null : o.equals(e)) 其中e是集合中的元素。

class TCollection2{
    public static void main(String[] args) {
        /*
         * boolean contain()
         * 判断集合中是否包含给定元素 包含则返回true
         * 
         * 存入集合的元素 应妥善重写equals方法     比如Cell里面要重写equals
         * 应为集合中很多方法都参考equals的比较结果
         */
        
        Collection c1 =new ArrayList();
        c1.add(new Cell(1,2));
        c1.add(new Cell(1,3));
        c1.add(new Cell(1,4));
        c1.add(new Cell(1,5));
        System.out.println(c1);
        
        Cell cell =new Cell(1,2);
        
        boolean contains =c1.contains(cell);
        System.out.println("是否包含cell:"+contains);
    }
}

 

5. size,clear,isEmpty方法

size方法用于获取当前集合中的元素总数。该方法定义为:int size()
clear方法用于清空集合。该方法定义为:void clear()
isEmpty方法用于判断当前集合中是否不 包含元素。该方法定义为:boolean isEmpty()
例如:

/**
 * 测试集合的size 、clear、 isEmpty方法
 * 
 */
class TCollection3{
    /**
     * 测试集合的size 、clear、 isEmpty方法
     * 
     */
    public static void main(String[] args) {
        Collection c2 = new ArrayList();
        boolean isEmpty =c2.isEmpty();
        System.out.println("是否是个空集合:"+isEmpty);
        System.out.println("size:"+c2.size());
        c2.add("java");
        c2.add("php");
        c2.add("cpp");
        System.out.println("size:"+c2.size());
        
    }
}

6. addAll与containsAll方法

集合也提供了批处理操作:
addAll方法用于将给定集合中的所有元素添加到当前集合中,其方法定义为:

 

        /*
         * 将c2元素全部放入c3中
         */
        Collection c3 =new ArrayList();
        c3.addAll(c2);
        System.out.println(c3);
        //查看集合c4中是否包含c2中的所有元素
        Collection c4= new ArrayList();
        c4.add("cpp");
        c4.add("php");
        c4.containsAll(c2);
        System.out.println(c4.containsAll(c2));
        
            /*
         * boolean remove(Object o)
         * 删除集合中第一个与给定的元素相同的元素
         * 这里相同也是依靠元素的equals方法比较的
         */
        System.out.println(c2);
        c2.remove(c4);
        System.out.println(c2);
        
    }
}

 

posted on 2015-05-06 11:19  manue1  阅读(285)  评论(0编辑  收藏  举报

导航