我尝试使用containsKey
的{{1}}方法,但不知何故我遇到了问题。
定义存储在树形图中的对象,例如TreeMap
不会提供与equals()
相同的结果。这是打算。
然而,compareTo()
的文件说:
如果此映射包含指定键的映射,则返回true。更正式地说,当且仅当此映射包含键{k}的映射时才返回true
java.util.Map
。 (最多可以有一个这样的映射。)
所以我尝试了以下:
(key==null ? k==null : key.equals(k))
t1为true,因为对象位于树形图中。
t3为真,因为t1等于t3(关于更改c = someModifiedObject();
boolean t1 = sm.containsKey(c);
someObject c2 = new someObject();
boolean t2 = sm.containsKey(c2);
boolean t3 = c.equals(new Chain());
int t4 = c.compareTo(new Chain());
运算符)
t4是假的
但是,t2也是假的。似乎equals()
使用TreeMap
而不是compareTo()
来确定对象是否存在。
是否有另一个有序地图的实现,我可以使用equals()
来检查对象是否存在?
答案 0 :(得分:0)
虽然没有标准的java API可以完全获得您想要的内容,但您可以创建自己的Comparator界面,然后让TreeMap
实现此Comparator
。您可以覆盖compareTo()
方法以按照您的意愿行事(在您的情况下,使其行为与equals()
方法相同)。