java - 搜索二维数组越界

标签 java arrays search multidimensional-array

我正在尝试在一组数组(17 行和 26 列)中搜索一个整数并打印该整数的索引。为了便于测试,我将要搜索的整数设置为 0,并且所有数组值均保留默认值 (0),因此我应该在代码运行完毕时看到打印的每个索引。

行打印正确,但当 columnIncrement > 16 时抛出越界异常。

有人知道我做错了什么吗?任何帮助是极大的赞赏!

private static void search(int[][] arrayofArrays, int num) {

    for(int rowIncrement = 0; rowIncrement < arrayofArrays.length; rowIncrement++) {
        for (int columnIncrement = 0; columnIncrement < arrayofArrays[columnIncrement].length; columnIncrement++) {
            if (arrayofArrays[rowIncrement][columnIncrement] == num) {
                System.out.println("The integer you are looking for is in " + rowIncrement + "-" + columnIncrement);
            }
        }
    }

    return;
}

public static void main(String[] args) {
    int[][] data = new int[17][26];
    int integer = 0;

    search(data, integer); 
}

最佳答案

你的for循环应该是

 for(int rowIncrement = 0; rowIncrement < arrayofArrays.length; rowIncrement++) {
    for (int columnIncrement = 0; columnIncrement < arrayofArrays[rowIncrement].length; columnIncrement++) {
        if (arrayofArrays[rowIncrement][columnIncrement] == num) {
            System.out.println("The integer you are looking for is in " + rowIncrement + "-" + columnIncrement);
        }
    }
}  

在第二个 for 循环中,您检查为 arrayOfArrays[columnIncrement] 而不是 arrayOfArrays[rowIncrement] 这就是导致问题的原因

关于java - 搜索二维数组越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628773/

相关文章:

python - 在 Python 中高效创建(播种)大型字典

java - 盈透证券 API - 执行多笔交易

java - 如何读取.class文件?

java - 为什么这个数组检查不起作用?

c++ - 通过指针访问二维(或三维)数组

mysql - PostgreSQL 和 MySQL 全文搜索

hibernate - Lucene bool 查询

java - 在类中添加 Intent

java - Eclipse:文件中的错误甚至不在项目中

java - 分配Java类的二维数组