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

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()方法
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值