java集合详解|Hashset的增删改查实战,以及迭代器、泛型、equals和hashcode等集合优化工具

本文详细讲解了Java中的HashSet,包括其定义、增加操作、使用equals和hashCode方法剔除重复元素、删除操作以及集合优化手段如泛型、迭代器和增强型for循环的应用。还探讨了布尔值flag在集合操作中的作用。
摘要由CSDN通过智能技术生成

一、set定义

1、Set

是元素无序并且不可以重复的集合,被称为集。

2、hashset

HashSet是Set的一个重要实现类,称为哈希集
HashSet中的元素无序并且不可以重复
HashSet中只允许一个null元素【因为不可重复性】
具有良好的存取和查找性能

二、hashset的增加

1、增加

HashSet  cat=new HashSet();
cat.add(c);

先创建好hashset这个类的引用cat,
再通过add()方法将值存储到集合中

2、增加两个内容相同的对象

Cat c=new Cat("朵朵",2,"布偶");
Cat c2=new Cat("朵朵",2,"布偶");

打印一下结果,会发现有两条一模一样的数据。这似乎和hashset的不可重复性违背。
但其实并不是这样,这两条内容的引用地址不同,就会添加到一起。

在这里插入图片描述

3、剔除重复性的引用——equals和hashcode()组合

hashcode()

1、是为了减少寻找某数的步骤,提高查找的速度。如arraylist需要依次遍历数,才能找到正确的值。

2、而hashcode通过某种定义好的算法,将集合中的值按照某种方式计算出哈希码,根据哈希码分组,分别存储在若干个存储区域。

3、如果需要查找的内容和某个区域的哈希码相同,那么就在符合的区域中遍历。反之,则跳过这个集合。

equals

【有2种写法,只细讲第一种的代码】

   public boolean equals(Object o) {
   
        if (this == o) return true;

        if(o.getClass()==Cat.class){
   
            Cat cat=(Cat) o;
            return getAge() == cat.getAge() &&
                    Objects.equals(getName(), cat.getName()) &&
             
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾七a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值