O exemplo neste artigo descreve a operação de rotação de um array bidimensional em Java e é compartilhado com todos para sua referência. O método de implementação específico é o seguinte:
Copie o código do código da seguinte forma:
teste de pacote;
/*
* 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
*
* Escreva um método para imprimir uma matriz bidimensional de igual comprimento, exigindo que os números naturais começando em 1 sejam organizados em espiral do círculo mais externo da matriz quadrada para dentro.
* */
classe pública Test6
{
público estático void principal(String[] args)
{
arraynum(4);
}
// É fácil alterar o código. Insira diferentes valores de y e produza diferentes matrizes bidimensionais.
arraynum vazio estático privado (int x)
{
int[][] arr = novo int[x][x];
int len = arr.length, max = 0, contagem = 0;
specArr(arr, len, max, contagem);
arprint(arr);
}
// Usado para impressão avançada de saída
arrprint vazio estático privado (int[][] arr)
{
para (int[] em: arr)
{
para (int t: em)
{
System.out.print(t + "/t");
}
System.out.println();
}
}
private static void specArr(int[][] arr, int len, int max, int count)
{
enquanto (len > 0)
{
int j = 0;
for (int índice = 0; índice < (len - 1) * 4; índice++)
{
if (índice <len - 1)
arr[0 + contagem][índice + contagem] = ++max;
senão if (índice <2 * (len - 1))
arr[contagem + j++][arr.comprimento - 1 - contagem] = ++max;
senão if (índice <3 * (len - 1))
arr[arr.length - 1 - contagem][(j--) + contagem] = ++max;
senão if (índice <4 * (len - 1))
arr[arr.length - 1 - (j++) - contagem][0 + contagem] = ++max;
}
se (len == 1)
{
arr[arr.comprimento / 2][arr.comprimento / 2] = máx + 1;
}// Observe que quando o valor de y for um número ímpar, haverá um loop para n=1 e o valor do meio do array precisa ser complementado.
contar++;
len = len - 2;
}
}
}
Espero que este artigo seja útil para a programação Java de todos.