나는 2 차원 배열을 가지고 있는데, 크기는 myArray[x][3]
입니다. [x][0]
을 기반으로 배열을 정렬해야합니다. Arrays.sort(myArray);
을 사용하고있었습니다. 그러나 그 당시 배열은 myArray[x]
의 일차원 배열이었습니다. 그런 다음 마음을 바꾸어 2 차원 배열로 변경했습니다. 1에서 9까지의 정수로 채워집니다. 2 차원 배열을 정렬하는 명확한 방법을 찾고 간단한 설명을 찾을 수 없습니다. 도와주세요.어떻게 간단한 정수 2 차원 배열을 정렬합니까?
감사합니다. 아이스
좋아, 여기에 코드입니다 :
public static void sortArray(int myArray[][]){
Arrays.sort(myArray, new Comparator<Integer[]>(){
@Override
public int compare(Integer[] o1, Integer[] o2) {
return o1[0].compareTo(o2[0]);
}
});
그 일을 했습니까?
좋습니다, 여기에 문제가 있습니다. 정렬 된 배열은 다음과 같이 분류되지 않은 아웃 시작 :
3 - 0 - 0
4 - 0 - 1
5 - 0 - 2
6 - 0 - 3
3 - 0 - 4
첫번째 열 [0][x]
의 값이고, 두 번째 열 [1][x]
배열 필드 카운트하고, 마지막 열 [2][x]
어레이의 실제 열 번호이다. 전체 메서드는 원래의 2 차원 배열에서 전체 행을 가져 와서 3 x 길이 배열로로드 한 다음 [0][x]
열을 기반으로 배열을 정렬합니다. 정렬이 잘못처럼
0 - 0 - 3
0 - 1 - 4
0 - 2 - 5
0 - 3 - 6
0 - 4 - 3
어떻게 든, 나는 복사, 숫자를 교환한다 붙여 넣기 방법은 같다 : 여기에 지금 호출되는 정렬 기능 후 결과입니다. 동일한 System.out.print
이 두 출력에서 사용되고 있습니다.
전체 2 차원 어레이를 전체적으로 정렬 하시겠습니까? 아니면 배열의 각 행을 개별적으로 정렬 하시겠습니까? – birryree
배열 열을 현명하게 정렬하고 싶습니까? – rohit89
배열 0 열을 기반으로 정렬하려면 열이 함께 바인딩 된 유지해야합니다. 첫 번째 열은 값을 포함하고 두 번째 열은 기본적으로 x 좌표를 포함하고 세 번째 열은 기본적으로 y 값을 포함하므로 예, 함께 있어야합니다. 첫 번째 열은 작은 것부터 큰 것까지 정렬해야하는 것입니다. – IceRegent