检查2d ArrayList的行以获取特定值

时间:2012-02-10 01:29:32

标签: java arrays arraylist

我正在尝试扫描2d数组的每一行(100x100大小),并确保每行(以及后面的列)只有1个实例,每个整数1到100.在下面的代码中我试图制作确保每一行只有一个实例,每个整数1到100,但显然语法不起作用。是否有任何方法可以推动这一切或我缺少什么?

感谢您的帮助

for(int i = 0; i<100; i++) {

        for (int j=0; j<100 ; j++) {
            if(2dARR.get(i).get(j).contains(1) && 2dArr.get(i).get(j).contains(2)(.....)) {
                System.out.println("FK");
            }

        }

    }

2 个答案:

答案 0 :(得分:0)

for(int i = 0; i<100; i++) {
  Set<Integer> numbersInRow = new HashSet<Integer>();  
  for (int j=0; j<100 ; j++) {
    int num = 2dARR.get(i).get(j);
    if (num < 1 || num > 100) {
       // out of bounds, handle error
    }
    else {
       numbersInRow.add(num);
    }
  }
  // At this point we have the set of numbers found in the row, all guaranteed to be >=1 and <= 100
  if (numbersInRow.size() != 100) {
     // at least one number appeared more than once
  }
}

答案 1 :(得分:0)

将其转储到Set中,检查Array和Set的大小是否相等。如果不是,那就有重复。如果超过该测试,则在数组中运行循环并检查所有值是否大于0且小于101(1-100)。