酸奶的Java学习日记 | 集合篇

本文通过一个统计快递收件人姓名的例子,介绍了如何使用Java集合中的HashSet实现去重功能。选择了HashSet而非TreeSet,因为HashSet更适合处理非数字类型的姓名数据。文章详细讲解了创建Person类,使用while循环录入姓名,以及通过迭代器遍历集合的过程。
摘要由CSDN通过智能技术生成

案例

双十一过后,某公司每天都能收到很多快递,门卫小张想要统计收到快递的人员名单,以便统一通知,现请你帮他编写一段Java程序,统计出需要取快递的人员名单。

可以通过循环一个一个录入有快递的人员姓名,并添加到集合中,由于集合有去重功能,这样最后得到的就是一个不重复的人员名单。

分析
由题意可知,遇到这种需要录入人员姓名,并且要查看的简单程序,可以用数组,也可以使用集合~

1.选择集合类型

但是,提到去重功能,就得看咱们的集合了,集合又分为了以下几种
在这里插入图片描述其中List集合是有序可重复类型,而Set集合是无序不可重复类型,所以这次结合实际需求当然要选Set集合啦!

所以,我们创建了一个HashSet集合,这时候肯定有小迷糊问:为什么不用TreeSet呢?

TreeSet内部其实是按照平衡二叉树的算法对数进行排序,记住是数!大于该数的放在右子树,小于该数的放在左子树……但是,等等!

我们要解决的是录入人员姓名的问题,人员姓名总不不是数字吧,不然细思极恐“嗨,001,我是002……”

有这会功夫去编码,excel统计表格都做好了,所以综上所述,我们在一堆集合里选择了HashSet

HashSet<> hs = new HashSet();

不要忘记导包哦,它在java.util包下

2.定义Person类,重写方法

又因为本次写程序的重点是人类,所以在定义集合的时候要限定集合的类型——只能是人类,如此一来,Person类就诞生了!

具体代码如下,其中重写了三个方法,均可使用快捷键生成,eclipse可以右键选择重构,IDEA则使用Alt+Insert选择以下三种方法自动生成~(快速写代码技巧get!)

package classCode.person;

public class Person {
   
    String name;

    public Person(String name) {
   
        this.name = name;
    }
//重写equals方法
    @Override
    public boolean equals(Object o) {
   
        if (this == o) return true;
        if (o == null || getClass() != o
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值