java基础-关于使用list集合contains方法(底层调用equals方法)去重的问题

本文探讨了在Java中使用List集合的contains方法进行去重时遇到的问题。通过分析源码,揭示了contains方法依赖于equals方法进行元素比较,而默认的equals方法比较的是对象的地址。为了解决去重问题,文章介绍了在Person类中重写equals方法的重要性,以确保基于对象属性值进行比较,从而实现有效的去重操作。
摘要由CSDN通过智能技术生成

前言:今天重新学习了一下集合类,在进行练习时,对于List集合的contains方法产生了一些疑惑,记录一下,以防以后再产生类似疑惑。

首先,描述一下作为练习的题目:
            键盘录入 Person信息 包括 姓名 年龄
          1.当录入 姓名 输入为exit 结束输入
          2.将Person对象 存入到集合中
               如果 姓名 年龄 相同 视为同一个人 那么只存储一个对象(去重)
          3.使用三种方式遍历集合 获取集合中 Person姓名 和 年龄 进行输出

          我们首先需要创建一个Person  JavaBean,用来进行对象属性的存储和获取。

class Person
{
	private String name;
	private int age;
	Person(){}
	Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	public String getName(){
		return name;
	}
	public int getAge(){
		return age;
	}
	public String toString(){
		return "["+name+","+age+"]";
	
	}
}

          其中还重写了toString方法用于格式化输出对象的属性。

          然后我们需要的就是重复创建多个对象并将其存入集合中去了,可以采取循环的方式,根据题目要求,需要实现键盘输入并当输入‘exit’时结束对象的创建,因此我们可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值