문제

내가 배열의 형태로'int[][]'나타내는 좌표의 작은니다.각 협조에 할당되었는 자신의 값입니다.예 array[0][4] = 28......

나는 두 가지 의문이 생길 수 있습니다.첫째,어떻게 반복해서 저장된 값이 있습니다.둘째,내가 할 수 있 값을 입력하고 그것의 특정 좌표 그리드에서 반환됩니다.무엇을 할 수있는 가장 좋은 방법이 될 것이 접근하는 이?

도움 주셔서 감사합니다!

도움이 되었습니까?

해결책

루프를 위해 또는 루프를 위해 강화할 수 있습니다.

for (int row=0; row < grid.length; row++)
{
    for (int col=0; col < grid[row].length; col++)
    {
        int value = grid[row][col];
        // Do stuff
    }
}

또는

// Note the different use of "row" as a variable name! This
// is the *whole* row, not the row *number*.
for (int[] row : grid)
{
    for (int value : row)
    {
         // Do stuff
    }
}

첫 번째 버전은 "코디네이트 찾기"질문에 대한 가장 쉬운 솔루션입니다. 내부 루프의 값이 올바른지 확인하십시오.

다른 팁

값을 반복하려면 루프 사용을 사용합니다.

 int[][] matrix   
 //...
 for(int row[] : matrix)
     for(int cell : row){
      //do something with cell
    }

값에 따라 좌표에 액세스하려면 일종의 이중 해시 맵이 필요하지만 (java.util.hashmap a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a ably a a beed a with so bech do boing

하는 모든 요소를 반복 그리드에서 이것을 보십시오:

int grid[][] = new int[10][10];

for(int i = 0; i < grid.length(); ++i) {
    for(int j = 0; j < grid[i].length(); ++j) {
        // Do whatever with grid[i][j] here
    }
}

지 않는 한 당신의 그리드가 정렬되어 어떤 방법으로 당신은 아마 하지 않을 것보다 더 나은 어떤 것을 무력을 검색합니다.

에 대한 반복,그것을 생각은 다음과 같이 될 것이다(구문을 수도 있습 조금,나를 다루지 않은 배열에서 java 니다.):

int[][] grid;  // just assuming this is already assigned somewhere

for(int x = 0 ; x < grid.length ; x++) {
  int[] row = grid[x];
  for(int y = 0 ; y < row.length ; y++) {
    int value = row[y];
    // Here you have the value for grid[x][y] and can do what you need to with it
  }
}

검색에 대한 당신은 아마,그것을 사용해야를 반복한 다음,반면 당신은 그것을 발견했습니다.

당신이 찾고 있을 수도 있습의 위치를 동일한 값을 여러 번 다음할 수 있습,그러나 다른 클라이언트를 사용하여 결과를 hashtable.

루프를 사용하여 루프를 사용하여 x 및 y 치수를 반복하여 한 번에 하나씩 각 값을 극복 할 수 있습니다.

값을 입력하려면 위와 동일하지만 요청 된 값과 일치하는 것을 찾으십시오.

단일 클래스 내 에서이 컬렉션을 모두 차단하고 어떤 식 으로든 노출하지 않으면 가장 행복 할 것입니다.

이것은 검색 및 조회 루틴을이 수업으로 옮기는 것을 의미합니다.

스토리지의 경우 모든 사람이 덮은 반복을 위해 해시 가능 및 조회를 추가하십시오. 이 의견을 Nickolai의 게시물에 넣었습니다.

새 정수 (ix + iy * 1000)를 해시 테이블의 값으로 저장하십시오. Y 인덱스가 1000을 초과 할 수 있다면 더 큰 숫자를 사용하십시오. 인트는 실제로 큽니다. 다시 얻으려면 ix = val%1000, iy = val/1000을 사용하십시오.

배열과 해시 테이블이 동일한 클래스에 캡슐화되면 나머지 코드는 쓰기가 쉽고 깨끗합니다.

배열을 통해 검색하는 것 외에는 특정 값의 특정 좌표를 찾을 수있는 방법이 없습니다. 그러나 배열의 값이 고유 한 것으로 보장되는 경우 (즉, 각 값이 하나의 셀에서만 발생 함) 별도의 배열을 인덱스로 유지할 수 있으며,이 값에 의해 색인 된 각 값의 좌표를 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top