이 기사의 예제는 Java에서 2차원 배열을 회전하는 작업을 설명하며 참조용으로 모든 사람과 공유됩니다. 구체적인 구현 방법은 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
패키지 테스트;
/*
* 1 2 3 4 5
* 16 17 18 19 6
* 15 24 25 20 7
* 14 23 22 21 8
* 13 12 11 10 9
*
* 1부터 시작하는 자연수를 정사각행렬의 가장 바깥쪽 원부터 나선형으로 배열하여 길이가 같은 2차원 배열을 인쇄하는 방법을 작성하세요.
* */
공개 클래스 Test6
{
공개 정적 무효 메인(문자열[] 인수)
{
배열번호(4);
}
// 코드를 변경하기 쉽습니다. 다른 y 값을 입력하고 다른 2차원 배열을 출력합니다.
개인 정적 무효 arraynum(int x)
{
int[][] arr = 새로운 int[x][x];
int len = arr.length, max = 0, count = 0;
specArr(arr, len, max, count);
arrprint(arr);
}
// 고급 출력 인쇄에 사용됩니다.
개인 정적 무효 arrprint(int[][] arr)
{
for (int[] in : arr)
{
for (int t : in)
{
System.out.print(t + "/t");
}
System.out.println();
}
}
개인 정적 무효 specArr(int[][] arr, int len, int max, int count)
{
동안(len > 0)
{
정수 j = 0;
for (int 인덱스 = 0; 인덱스 < (len - 1) * 4; 인덱스++)
{
if (인덱스 < len - 1)
arr[0 + 개수][인덱스 + 개수] = ++max;
else if (인덱스 < 2 * (len - 1))
arr[count + j++][arr.length - 1 - count] = ++max;
else if (인덱스 < 3 * (len - 1))
arr[arr.length - 1 - 개수][(j--) + 개수] = ++max;
else if (인덱스 < 4 * (len - 1))
arr[arr.length - 1 - (j++) - 개수][0 + 개수] = ++max;
}
if (len == 1)
{
arr[arr.length / 2][arr.length / 2] = 최대 + 1;
}// y 값이 홀수이면 n=1로 루프가 발생하고 배열의 중간 값을 보완해야 합니다.
카운트++;
len = len - 2;
}
}
}
이 글이 모든 사람의 Java 프로그래밍에 도움이 되기를 바랍니다.