【发布时间】:2013-09-03 12:42:13
【问题描述】:
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;
}
}
我有一个哈希图,基本上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);
}
}
}
data hashmap 应该与 map hashmap 具有相同的索引号,所以如果您想知道它是什么。
基本上,我循环遍历所有数据哈希图项(获取 A、B,然后匹配 C 是否在另一个哈希图(映射)内)。
现在是提问时间
如何检查一个对象是否包含(存在)或删除它(不是通过索引,而是通过键)?我该怎么做(上面的例子)。
【问题讨论】:
-
请不要给你的班级打电话
Object。你甚至都不知道是什么击中了你。 -
这只是一个例子。 @SotiriosDelimanolis - 但感谢知道。
-
离题:使用 Object 作为类名不是一个好主意。最好不要使用 JDK 中已经存在的类的名称
-
@JonyKale,改用
Foo -
您确定您使用的是 HashMap 而不是 HashSet?