gpt4 book ai didi

java - 基于自定义属性将用户定义的数据类型添加到 Java Set?

转载 作者:行者123 更新时间:2023-11-30 10:13:10 25 4
gpt4 key购买 nike

假设我有一个自定义数据类型:

public class Notification {
private String name;
private String location;
private String message;

// Constructors, getter, setters, etc.
}

我想将列表中的对象(Notification 类型)添加到 Set 中以去除重复项。但是仅仅简单地将它们添加到 Set 中是行不通的,因为 Java 不知道如何检查是否存在重复项。

我如何告诉 Java,当我将 Notification 对象添加到集合时,我希望它只检查 name 属性是否唯一(忽略其他字段)?

最佳答案

我发现使用 Louis Wasserman 提到的 Map(以名称属性为键)比覆盖 hashChode 和 equals 更好。如果您正在尝试做我正在做的事情,您可以实现如下内容:

Map<String, Notification> m = new HashMap();

for (Notification n : notifications) {
m.put(n.getHostname(), n);
}

Iterator it = m.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
}

当您遍历 Map 时,您会看到它根据键确定对象是否唯一!比使用 Set 容易得多。

关于java - 基于自定义属性将用户定义的数据类型添加到 Java Set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51487293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com