Collection接口基本方法

来源:互联网 发布:湖南卫视电视直播软件 编辑:程序博客网 时间:2024/05/22 03:24
package cn.test.collection;import java.util.ArrayList;import java.util.Collection;/* *集合:集合是存储对象数据的集合容器  *  * 集合比数组的优势: *  1.集合可以存储任意类型的对象数据,数组只能存储同一数据类型的数据 *  2.集合的长度是会发生变化的,数组的长度是固定不变的 *  * ---| Collection  单例集合的根接口。 * ------|List 如果是实现类List接口的集合类,具备的特点是: 有序 ,可重复 * ------|Set  如果实现了Set接口的集合类,具备的特点是:无序,不可重复 *  * Collection中的方法 *  *  增加 *      add(E e)  添加成功返回true添加失败返回false *      addAll(Collection c) //把一个集合的元素添加到另外一个集合中去 *  *  删除 *      clear() 清除集合中的所有元素 *      remove(Object o)  删除集合中的指定元素 *         removeAll(Collection c) 删除一个集合的交集元素        retainAll(Collection c) 保留交集元素,其他非交集元素删除掉 *  查看 *      size() 查看元素的个数 *  判断 *      contains(Object o)  *      containsAll(Collection<?> c)         equals(Object o)         isEmpty()  *  迭代 *      iterator()  *      toArray()  */public class Demo2 {    public static void main(String[] args) {//      Collection c = new Collection; 接口不可以创建对象,可以使用多态        Collection c = new ArrayList();//创建一个实现类对象        /*c.add("abc");        c.add(1);        c.add(3.14);*/        c.add("令计划");        c.add("徐才厚");        c.add("周永康");        System.out.println("添加成功吗?"+c.add("郭美美"));        //创建集合        Collection c2 = new ArrayList();        c2.add("徐才厚");        c2.add("房祖名");        c2.add("狗娃");        /*         * c.addAll(c2);//把c2集合中的元素添加到c集合中去S        */              /*删除方法:        c.clear();        System.out.println("删除成功吗?"+c.remove("郭美美"));        c.removeAll(c2);        c.retainAll(c2);        */        System.out.println("查看集合的元素的个数:"+c.size());        System.out.println("集合的元素:"+c);    }}
package cn.test.collection;import java.util.ArrayList;import java.util.Collection;/* * 判断 *      contains(Object o)  *      containsAll(Collection<?> c)         equals(Object o)         isEmpty()  *  */class  Person{    int id;    String name;    public Person(int id, String name) {        this.id = id;        this.name = name;    }    @Override    public String toString() {        // TODO Auto-generated method stub        return "{编号:"+this.id+" 姓名:"+this.name+"}";    }    @Override    public boolean equals(Object obj) {        // TODO Auto-generated method stub        Person p = (Person)obj;        return this.id== p.id;    }    //java规定一般重写了equals方法,那么就会从写hashCode方法     @Override    public int hashCode() {        // TODO Auto-generated method stub        return this.id;    }} class Dog{}public class Demo3 {    public static void main(String[] args) {        /*Collection c = new ArrayList<>();        c.add("令计划");        c.add("徐才厚");        c.add("周永康");        System.out.println("判断集合是否是空:"+c.isEmpty());        System.out.println("判断集合是否存在指定的元素:"+c.contains("狗娃"));*/        //集合添加自定义的元素        Collection  c = new ArrayList();         c.add(new Person(110, "狗娃"));        c.add(new Person(120, "狗剩"));        c.add(new Person(130, "狗三"));        c.add(new Person(140, "狗四"));//      c.contains(new Dog());//用到的是实参的equals方法        Collection  c2 = new ArrayList();         c2.add(new Person(110, "狗娃"));        c2.add(new Person(120, "狗剩"));        c2.add(new Person(102, "陈狗"));        System.out.println("c集合有包含c2集合中的所有元素吗?"+c.containsAll(c2));        //如果在现实生活中 只要身份证编号一致,那么就为同一个人,看源代码要看Arraylist的实现方法        System.out.println("存在该元素吗?"+c.contains(new Person(120, "狗剩")));//false  其实contains方法内部是依赖equal方法进行比较的        System.out.println("集合的元素是:"+c);    }}
package cn.test.collection;import java.util.ArrayList;import java.util.Collection;/* * 迭代 *  iterator()  *  toArray()  *  */public class Demo4 {    public static void main(String[] args) {        /*Collection c = new ArrayList();//创建一个实现类对象        c.add("令计划");        c.add("徐才厚");        c.add("周永康");        //集合可以存储任意类型的元素,所以需要用Object类型的数组接收        Object[] arr = c.toArray();//把集合中的元素全部存储到一个Object的数组中返回        System.out.println("数组的元素:"+c);*/        Collection  c = new ArrayList();         c.add(new Person(110, "狗娃"));        c.add(new Person(120, "狗剩"));        c.add(new Person(130, "狗三"));        c.add(new Person(140, "狗四"));        Object[] arr = c.toArray();        //需求: 把编号是110的人的信息输出        /*for (int i = 0; i < arr.length; i++) {            if(arr[i].equals(new Person(110, " "))){                System.out.println("编号为110的元素为:"+arr[i]);            }        }*/        for (int i = 0; i < arr.length; i++) {            Person p = (Person)arr[i];//强制类型转换为Person存储,从Object数组中取出的元素只能使用Object类型的声明变量接收。            if(p.id == 110){                System.out.println(p);            }        }    }}
0 0
原创粉丝点击