我需要以下Python代码的Java等价代码:
In [1]: d = {}
In [2]: k = ("x","2")
In [3]: d[k] = 1
In [4]: print d[("x","y")]
1
Python有元组,它们是可哈希的。我尝试在Java中进行以下操作,但没有成功:
Map<String[], Integer> d = new HashMap<String[], Integer>();
String[] k = new String[]{"x", "y"};
d.put(k, 1);
System.out.println(d.get(k));
System.out.println(d.get(new String[]{"x", "y"}));
它的输出结果为:
1
null
这意味着对String[]
的引用被哈希而不是该值本身。
我能想到的一种低效的方法是将String[]
中的元素连接成单个String
。
有更好的方法吗?
Tuple
类,并使用equals()
和hashCode()
方法即可。 - Andrew Logvinov("aa", "b")
和("a", "ab")
,那么会发生什么? - Matt Ball