Collection(单例集合)接口的共性方法

来源:互联网 发布:怎么使用同花顺软件 编辑:程序博客网 时间:2024/06/06 12:30

Collection接口的共性方法

这里写图片描述

代码实现

代码示例1:迭代、添加、判断、查看、删除

package collection;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;public class Demo2 {    public static void main(String[] args) {        Collection c=new ArrayList();        c.add("小花");        c.add("小冬");        c.add("小西");        System.out.println("添加成功吗?    "+c.add("小晨"));//添加成功吗?true        System.out.println("查看集合元素:"+c);//查看集合元素:[小花, 小冬, 小西, 小晨]        /**         * 1.迭代         */        Object[] arr=c.toArray(); //把集合中的元素全部 存储到一个Object的数组中返回。        System.out.println(Arrays.toString(arr));//[小花, 小冬, 小西, 小晨]        /**         * 2.添加         */        Collection c1=new ArrayList();        c1.add("小小");        c1.add("潇潇");        c1.add("肖肖");        c.addAll(c1);  //把c1的元素的添加到c集合中去。        /**         * 3.判断         */        System.out.println(c.isEmpty());//false        System.out.println(c.contains("小西"));//true        System.out.println(c.containsAll(c1));//true        /**         * 4.查看         */        System.out.println("查看集合元素:"+c); //查看集合元素:[小花, 小冬, 小西, 小晨, 小小, 潇潇, 肖肖]        System.out.println("元素个数:"+c.size());//元素个数:7        /**         * 5.删除         */        System.out.println("删除成功吗?"+c.remove("肖肖"));//删除成功吗?true        c.removeAll(c1); //删除c集合中与c1的交集元素。        c.retainAll(c1); //保留c集合与c1的交集元素,删除其他的元素。        c.clear();//清空集合中的元素    }}

代码示例2:迭代

package collection;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;public class Demo3 {    public static void main(String[] args) {        Collection c=new ArrayList();        c.add("小花");        c.add("小冬");        c.add("小西");        c.add("小皇");         /*          * 使用迭代器遍历集合元素         * 方式一:使用toArray()方法         */        Object[] arr=c.toArray();        for(int i=0;i<arr.length;i++) {                System.out.println(arr[i]);//结果:小花   小冬  小西  小皇        }        /**         * 方式二:使用iterator迭代器遍历         */        Iterator it=c.iterator();//返回一个迭代器        while(it.hasNext()) {//判断是否有元素可以遍历            System.out.println(it.next());//获取元素                     //结果:小花   小冬  小西  小皇        }    }}

代码示例3:包含、重写equals()方法

Person类:

package collection;public class Person {    int id;    String name;    public Person(int id,String name) {        // TODO Auto-generated constructor stub         this.id=id;         this.name=name;    }    //java规范: 一般重写equlas方法我们都会重写hashCode方法的。    @Override    public int hashCode() {        // TODO Auto-generated method stub        return this.id;    }    @Override    public boolean equals(Object obj) {        // TODO Auto-generated method stub        Person p=(Person)obj;        return this.id==p.id;    }    @Override    public String toString() {        // TODO Auto-generated method stub        return "{ID:"+this.id+",  姓名:"+this.name+"}";    }}

操作代码:

package collection;import java.util.ArrayList;import java.util.Collection;public class Demo3 {    public static void main(String[] args) {        //在集合中添加自定义的元素        Collection c=new ArrayList();        c.add(new Person(321, "小西"));        c.add(new Person(331, "小何"));        c.add(new Person(332, "小花"));        Collection c1=new ArrayList();        c1.add(new Person(321, "小西"));        c1.add(new Person(331, "小何"));        c1.add(new Person(332, "肖肖"));        System.out.println(c.contains(c1));//false         /**          * contains方法内部是依赖于equals方法进行比较的。          * contains()方法返回true还返回false,要看equals()方法怎么写。          */        System.out.println(c1.contains(new Person(332, "肖肖")));//true        System.out.println(c);//[{ID:321,  姓名:小西}, {ID:331,  姓名:小何}, {ID:332,  姓名:小花}]        /**         * 迭代         * 需求:把ID为331的人的信息输出。         */        Object[] arr=c.toArray();        for(int i=0;i<arr.length;i++) {            Person p=(Person)arr[i];//从Object数组中取出的元素只能使用Object类型声明变量接收,如果需要其他的类型需要进行强制类型转换。            if(p.id==331) {                System.out.println(p);//{ID:331,  姓名:小何}            }        }    }   }

对比

默认的equals()方法
这里写图片描述

这里写图片描述

自己写的equals()方法
这里写图片描述

这里写图片描述

原创粉丝点击