集合框架

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

        

    }

}

 

你可能感兴趣的:(集合框架)