2017-04-01 30 views
0

例如,我们有如何检查双数组的唯一性?

String [][] doubleArray = {{"a","1"},{"b","3"},{"a","1"},{"c","1"}};

如何创建只有唯一子阵列的新数组:

{{"a","1"},{"b","3"},{"c","1"}}

什么我tryed:

Set <String []> uniq = new HashSet<String []>(Arrays.asList(doubleArray));

但Java犯规看到{"a","1"}{"a","1"}之间的区别,所以uniq返回doubleArray的所有子阵列的集合,包括克隆。

回答

1

您可以使用Map这样的:

String [][] doubleArray = {{"a","1"},{"b","3"},{"a","1"},{"c","1"}}; 
Map<String, String> map = new HashMap<>(); 
for (String[] strings : doubleArray) { 
    map.put(strings[0], strings[1]); 
} 
System.out.println("map = " + map); 

结果:

map = {a=1, b=3, c=1} 
+3

这是不对的!如果原始数组包含“{a,1},{a,2}”,结果如何?我们有两个不同的值 - “a”,所以第二个会覆盖第一个值。 – TDG

+0

@TDG我知道,但在问题中没有提到的东西。谢谢! –