(编程纯萌新java学习收获--集合)equals重写的应用

通过重写equals从而改变collection接口中的remove方法。

本次我需要实现在remove中使用new一个新的对象,这个对象和集合中一个对象的name和age相等,从而做到删除集合中的这个对象。

代码如下

先创建一个student001类并加入方法。

package com.kui.Gather;

public class Student001 {
    private String name;
    private int age;

    public Student001() {
    }

    public Student001(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student001{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';

    }

然后创建一个collection对象和两个student001对象。将两个student001对象添加到集合中并打印集合中的元素个数和集合的内容。

package com.kui.Gather;

import java.util.ArrayList;
import java.util.Collection;

public class Collection002 {
    public static void main(String[] args) {
        Collection itt=new ArrayList();
        Student001 s1 = new Student001("刻琴",16);
        Student001 s2 = new Student001("凯亚",19);
        itt.add(s1);
        itt.add(s2);
        System.out.println("元素个数"+itt.size());
        System.out.println(itt.toString());

然后在student001中重写equals

 @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        else if (obj == null) {
            return false;
        }
        else if (obj instanceof Student001) {
            Student001 s = (Student001) obj;
            if (this.name.equals(s.getName())&&this.age==s.getAge()){
                return true;
            }

        }

        return false;
    }

再在main方法中使用remove方法删除s2这个对象并打印集合中的元素个数和集合的内容。(通过new一个新的对象的方式删除)

import java.util.ArrayList;
import java.util.Collection;

        public class Collection002 {
            public static void main(String[] args) {
                Collection itt=new ArrayList();
                Student001 s1 = new Student001("刻琴",16);
                Student001 s2 = new Student001("凯亚",19);
                itt.add(s1);
                itt.add(s2);
                System.out.println("元素个数"+itt.size());
                System.out.println(itt.toString());
                System.out.println("--------------------------------------");
                itt.remove(new Student001("凯亚",19));
                System.out.println("元素个数"+itt.size());
                System.out.println(itt.toString());

    }
}

运行结果:

元素个数2
[Student001{name='刻琴', age=16}, Student001{name='凯亚', age=19}]
--------------------------------------
元素个数1
[Student001{name='刻琴', age=16}]

Process finished with exit code 0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值