【问题标题】:How can i check double array for uniqueness?如何检查双数组的唯一性?
【发布时间】:2017-04-01 09:57:37
【问题描述】:

例如我们有

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

如何创建一个只有唯一性子数组的新数组:

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

我尝试了什么:

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

但是 Java 看不出 {"a","1"}{"a","1"} 之间的区别,所以 uniq 返回给我 doubleArray 的所有子数组的集合,包括克隆。

【问题讨论】:

    标签: java arrays collections


    【解决方案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}
    

    【讨论】:

    • 这是错误的!如果原始数组包含{a,1},{a,2},结果会是什么?我们有相同的 kay - a 有两个不同的值,所以第二个将覆盖第一个。
    • @TDG 我知道,但在问题中没有你提到的东西。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2018-09-24
    • 2012-03-04
    相关资源
    最近更新 更多