길이가 다른 행이있는 정수 배열을 사용하면 전체 2 차원 배열을 인쇄 할 수 있지만 열별로 정렬 할 수 있습니까? 행을 기준으로 행을 수행하는 방법을 이해하지만이 문제로 어려움을 겪고 있습니다.열로 불규칙한 배열 열 인쇄
int[][] a = new int[5][];
a[0] = new int[4];
a[1] = new int[2];
a[2] = new int[5];
a[3] = new int[3];
a[4] = new int[1];
int longestRowLength = a[0].length;
for(i = 1; i < a.length; i++)
{
if(a[i].length > longestRowLength)
longestRowLength = a[i].length;
}
for(i = 0; i < a.length; i++)
{
for(j = 0; j < a[i].length; j++)
{
a[i][j] = rand.nextInt(10);
System.out.print(a[i][j]);
}
System.out.println();
}
for(j = 0; j < longestRowLength; j++)
{
for(i = 0; i < a.length; i++)
{
if(a[i].length < longestRowLength)
continue;
System.out.print(a[i][j]);
}
}
}
이 작업을 수행했지만 문제는 배열 중 하나와 경계를 벗어나는 것을 인식하는 방법입니다. 내 경우의 (a [i]는 길이가 가장 긴 사람이 아닌 경우는 심지어 어떤 번호를 인쇄하지 않으므로 longestRowLength이 작동하지 않습니다 .length < 내가 이것을 달성 할 수있는 방법
편집 :.?
좋아 I 변경이 라인 :.?
if(longestRowLength - a[i].length > 0 && (j+1) > a[i].length)
continue;
System.out.print(a[i][j]);
지금은 작동하지만이 행으로 열을 인쇄 어쨌든 거기에 그것을 그냥 행에서와 같이 인쇄 할 뿐이다 열을 기준으로 열을 인쇄 할 수 있도록 (PS 그래 if 문의 첫 번째 조건은 필요 없음)