LinkHashSet(HashSet+LinkedHashMap)

对于 LinkedHashSet 而言,它继承与 HashSet、又基于 LinkedHashMap 来实现的。 LinkedHashSet 底层使用 LinkedHashMap 来保存所有元素,它继承与 HashSet,其所有的方法 操作上又与HashSet相同,因此LinkedHashSet 的实现上非常简单,只提供了四个构造方法,并 通过传递一个标识参数,调用父类的构造器,底层构造一个 LinkedHashMap 来实现,在相关操 作上与父类HashSet的操作相同,直接调用父类HashSet的方法即可

为了向HashSet集合中存储对象,需要重写Object类中的equals()和hashCode()方法。equals()方法用于比较两个对象是否相等,而hashCode()方法用于获取对象的哈希码,以便在HashSet中进行查找和比较。如果不重写这两个方法,则HashSet将无法正确地比较和查找对象。 以下是一个示例代码,演示如何向HashSet集合中存储对象: ```java import java.util.HashSet; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; } @Override public int hashCode() { int hash = 7; hash = 89 * hash + (this.name != null ? this.name.hashCode() : 0); hash = 89 * hash + this.age; return hash; } public static void main(String[] args) { HashSet<Person> set = new HashSet<Person>(); set.add(new Person("Alice", 25)); set.add(new Person("Bob", 30)); set.add(new Person("Charlie", 35)); System.out.println(set); } } ``` 在上面的示例代码中,我们创建了一个Person类,并重写了equals()和hashCode()方法。然后,我们创建了一个HashSet集合,并向其中添加了三个Person对象。最后,我们打印HashSet集合,以查看存储的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技术学习分享

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

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

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

打赏作者

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

抵扣说明:

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

余额充值