简体   繁体   中英

Getting indexes from two-dimensional array

How can I get int a = 400; int b = 100; int a = 400; int b = 100; from 2-dimensional array 1000 x 1000 in Java, for example, mass[400][100] (row 400, column 100)? I found element in array and need numbers of his row/line and column. How can I get this numbers? Thanks.

Are you asking how to get the dimensions of an array?

If a is new int[400][100]; then you can get 400 by doing a.length and 100 by doing a[0].length .

you can Work Around this .. To get a value in 2d array one way to do is

int[][] a = ...;


for (int r=0; r < a.length; r++) {
    for (int c=0; c < a[r].length; c++) {
        int value= a[r][c];
    }

}

If you need to find the position in the array based on the value , you have no other option but to brute-force loop through the whole array, breaking out when you find the first match:

int[][] massiveArray = new int[1000][1000];

final int valueTofind = 27;
// assign the value to find at position (400, 100)
massiveArray[400][100] = valueTofind;

int i_value = -1;
int j_value = -1;

// find the first occurrance of valueTofind by looping through the array
outer: for (int i = 0; i < massiveArray.length; i++) {
    for (int j = 0; j < massiveArray[0].length; j++) {
        if (massiveArray[i][j] == valueTofind) {
            i_value = i;
            j_value = j;
            break outer;
        }
    }
}

System.out.println(String.format("First position for %d is at (%d, %d)",
     valueTofind, i_value, j_value));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM