可以使用http://developer.android.com/reference/android/util/Pair.html吗?这用于 HashMap 中的键? 因为对我来说,这个类为 equals() 和 hashCode() 提供了有效的实现。我说得对吗?
最佳答案
由于 Pair 支持 equals 和 hashcode,您可以安全地将其用作 key 。
我整理了一个非常简单的 JUnit 测试来让自己确信这是真的并且它通过了。
public final void testPairAsHashMapKey() {
HashMap<Pair<Integer, Integer>, String> map = new HashMap<Pair<Integer, Integer>, String>();
Pair<Integer, Integer> p1 = new Pair<Integer, Integer>(0, 0);
Pair<Integer, Integer> p2 = new Pair<Integer, Integer>(0, 0);
Pair<Integer, Integer> p3 = new Pair<Integer, Integer>(5, 3);
Pair<Integer, Integer> p4 = new Pair<Integer, Integer>(3, 5);
map.put(p1, "foo");
assertEquals(1, map.size());
assertEquals("foo", map.get(p1));
map.put(p2, "new_foo");
// p2.equals(p1) so map will not grow but value will update
assertEquals(1, map.size());
assertEquals("new_foo", map.get(p2));
map.put(p3, "bar");
assertEquals(2, map.size());
assertEquals("bar", map.get(p3));
map.put(p4, "test");
assertEquals(3, map.size());
assertEquals("test", map.get(p4));
}
关于java - android.util.Pair 作为 HashMap 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569064/