我有一个二维整数数组,每个索引中都有3个数字。

例如:

   examplearray=new int[][]
   {

        {0, 0, 0},
        {0, 1, 0},
        {0, 0, 1},
        {1, 0, 1},

   };


我想找出每个索引中的前两个数字是否与其他任何索引中的前两个数字相匹配。

在此示例中,{0,0,0}{0,0,1}都具有相同的前两个数字。我想创建一个可以表明这一点的代码。

最佳答案

最好的方法是创建一个表示外部数组成员的键类。 hackies /最快的方法是使用long将前两个数字填充在一起:

Set<Long> keys = new HashSet<>();
for (int[] innerArray : examplearray) {
  long key = ((long) innerArray[0] << 32) | innerArray[1];
  if (keys.contains(key)) {
    System.out.println(Arrays.toString(innerArray) + " has duplicate entries");
  }
  keys.add(key);
}

关于java - 在二维整数数组中搜索重复的条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22137740/

10-16 15:10
查看更多