首页 > 学院 > 开发设计 > 正文

集合框架

2019-11-15 00:04:16
字体:
来源:转载
供稿:网友
集合框架

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表