所以,我有一个2D数组,其列应该按数字顺序排序。但是,我想确保用户的输入符合此规则。这段代码是我尝试确保用户输入有效。
for (int j = 0; j < map[0].length; j++) {
for (int i = 0; i < map.length - 1; i++) {
if (map[i][j] != null && map[i + 1][j] != null) {
if (x[i][j] > x[i + 1][j]) {
throw new IllegalArgumentException();
}
}
}
}
这适用于第一列,但是当它循环到第二列的顶部时,会抛出IllegalArgumentException,因为第二列中的第一个数字通常小于第一列中的最后一个数字。但是,由于列按数字顺序排序,因此这是预期的行为。所以,我的问题是:有没有更好的方法来检查列中的下一个数字是否总是大于当前数字,并为每列执行此操作。如前所述,我目前的尝试引发了异常。
这是输入程序的元素表。最后一个元素是抛出异常的地方(9B):
1A XXX
2A XXX
2A XXX
3A XXX
XXX XXX
9A 9B
10A
11A
12A
13A
20A