Inverter uma array em Java

Google Translate Icon

Este post irá discutir como reverter um array em Java.

Pratique este problema

1. Solução ingênua

Uma solução simples é criar um novo array do mesmo tipo e tamanho do array de entrada, preenchê-lo com elementos do array original na ordem inversa e então copiar o conteúdo do novo array para o original.

Download  Executar código

2. Implementação no local

A implementação acima requer O(n) espaço extra para a matriz auxiliar. Podemos evitar isso modificando o array no lugar. Isso significa que a conversão deve ocorrer sem usar um array auxiliar, substituindo os elementos do array existente.

Um algoritmo no local pode ser implementado lendo os elementos de ambas as extremidades da array e trocando-os, conforme mostrado abaixo:

Download  Executar código

 
Também podemos usar recursão para reverter um array sem usar um array auxiliar. A lógica permanece a mesma da implementação iterativa acima, mas ocupa espaço para a ligue para Stack.

Download  Executar código

3. Usando a Stack (Stack implícita e explícita)

Outra maneira plausível de reverter uma matriz é usar a estrutura de dados da Stack. A ideia é colocar cada elemento do array em uma Stack. Em seguida, simplesmente retiramos os valores da Stack um por um e atribuímos cada item retirado de volta ao array original, começando do início.

Download  Executar código

 
Podemos facilmente converter o código acima para usar a recursão ligue para Stack em vez da Stack explícita. Aqui está um programa recursivo que demonstra isso:

Download  Executar código

4. Usando Collections.reverse() método

Por fim, podemos usar o reverse() método do Collections class para inverter a ordem dos elementos na matriz especificada. Como ele aceita uma coleção como argumento, a ideia é passar um wrapper de lista apoiado pelo array fornecido.

Download  Executar código

Isso é tudo sobre reverter uma array em Java.

Avalie esta postagem

Classificação média 4.86/5. Contagem de votos: 22

Sem votos até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Diga-nos como podemos melhorar este post?




Obrigado por ler.

Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.

Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz :)



Se inscrever
Notificar de
guest
0 Comentários
Comentários em linha
Ver todos os comentários
NÃO siga este link ou você será banido do site!