gpt4 book ai didi

Java 从 hashmap 中删除对象

转载 作者:行者123 更新时间:2023-12-01 17:21:17 25 4
gpt4 key购买 nike

public Map<Object> map = new HashMap<Object>();


map.add(new Object ("a", "b"));


public class Object {

private String a;
private String b;
private String c;

public Object(String a, String b) {
this.a = a;
this.a = b;
this.c = "" + a + b + "";
}

public String getA() {
return a;
}

public String getB() {
return b;
}

public String getC() {
return c;
}
}

我有一个 HashMap ,基本上 Object.getC() 应该是字符串中的 a + b。在其他一些类中,我需要获取 c 值,如果该 hashmap 集合索引具有完全相同的 c 值,它将删除该索引:

public static void deleteChest() {
for (int i = 0; i < data.size(); i++) {
if (data.get(i).getItems().length == 0) {
Object c = new Object(data.get(i).getA(), data.get(i).getB());
map.remove(c);
}
}
}

数据 HashMap 应该与 map HashMap 具有相同的索引号,所以如果您想知道它是什么。

基本上,我循环遍历所有数据 HashMap 项(获取 A、B,然后如果 C 位于另一个 HashMap (映射)内则进行匹配)。

现在是提问时间

如何检查对象是否包含(存在)或删除它(不是通过索引,而是通过键)?我该如何做到这一点(上面的示例)。

最佳答案

您应该为您的类定义 equalshashCode 方法。

否则,您将退回到检查对象标识的默认实现,即两个引用是否指向相同的内存位置,而不是指向包含相同数据的两个对象。

关于Java 从 hashmap 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592638/

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