Como reverter uma lista em java

Como reverter uma lista em java

Reverter uma lista em Java hoje não é direta. É por isso que este artigo foi escrito. Tecnicamente, uma lista em Java é uma interface. Uma interface é uma classe com assinaturas de método que não têm definições. Uma classe deve ser implementada a partir desta interface antes que os objetos da classe implementada possam ser instanciados. Na classe implementada, os métodos são definidos.

Há uma aula, ainda chamada List, em Java. No entanto, esta classe é destinada a elementos de string para a lista. Uma lista não precisa apenas ser composta de strings. Uma lista pode consistir em todos os carros alegóricos, todos duplos, todos os números inteiros, etc. Cada um desses tipos precisaria ser revertido, dependendo do problema em questão. Portanto, esta classe não é mais mencionada neste artigo para a lista de strings. Revertendo uma lista neste artigo refere -se à interface da lista feita em uma classe e um objeto.

Existem classes de lista predefinidas Java implementadas na interface da lista. Essas classes de lista são: AbstractList, AbstractEngEncialList, ArrayList, Attributelist, copywriteArrayList, LinkedList, Rolelist, RoleUnResolvedList, Stack e The Vector.

A maioria dessas classes de lista está no Java.util.* pacote.

Coleções de classe

A aula de coleções também está no Java.util.* pacote. A classe de coleções possui um método estático reverso () que retorna o vazio. Método estático significa que a classe de coleções não precisa ser instanciada antes que o método reverso seja usado. Este método levará qualquer um dos objetos da lista anterior como um argumento e o reverterá.

Algumas expressões podem retornar um objeto de lista de uso geral. O método reverso das coleções também reverterá este objeto de lista quando fornecido como argumento.

A sintaxe para o método das coleções reverse () é:

estático vazio reverso (lista de lista)

Revertendo manualmente

Um objeto de lista em Java também pode ser revertido manualmente. Dois desses métodos manuais também são explicados neste artigo.

Reverter usando o método reverso de coleções

Reverter uma lista predefinida
O programa a seguir reverte uma lista de alfabetos:

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Arraylist AL = novo Arraylist();
al.add ('v'); al.add ('w'); al.add ('x'); al.add ('y'); al.add ('z');
Coleções.reverso (Al);
Sistema.fora.println (Al);

A saída é:

[Z, Y, X, W, V]

Para uma entrada de,

[V W X Y Z]

Observe a maneira como a classe de coleções e seu método reverso () foram usados.

Revertendo uma lista retornada de propósito geral

Suponha que o ARR é uma variedade de personagens. A aula, matrizes, no java.util.* pacote, tem o método estático, aslist (), que levaria o ARR como um argumento e retornaria uma lista de uso geral de tamanho fixo com os mesmos caracteres. O método reverso estático da classe de coleções ainda reverteria esta lista. O programa a seguir ilustra o seguinte:

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Personagem [] arr = novo caractere [] 'v', 'w', 'x', 'y', 'z';
Lista lst = matrizes.aslist (arr);
Coleções.reverso (LST);
Sistema.fora.println (LST);

A saída é:

[Z, Y, X, W, V]

Revertendo uma lista manualmente em java

Uma maneira de uma matriz pode ser revertida, trocando os elementos. O último elemento é trocado com o primeiro; O último, mas um é trocado pelo segundo; O terceiro ao último é trocado pelo terceiro; e assim por diante. Dois índices, i e j, são necessários para este processo. O índice I é desde o início, e J é do final. No processo, trocar de cárie enquanto eu é menor que j. Todos os elementos são trocados se a lista tiver um tamanho de número par. Se a lista tiver um tamanho de número ímpar, o elemento intermediário permanecerá em sua posição. Essa maneira de reversão deve ser usada com listas e matrizes de tamanho fixo.

A outra maneira de reverter manualmente pode ser ilustrada da seguinte maneira:

Aqui está a lista a ser revertida:

V W X Y Z

O último elemento, Z, é removido e inserido na primeira posição para a lista se tornar:

Z, v, w, x, y

O novo último elemento é removido e inserido na segunda posição para a lista se tornar:

Z, y, v, w, x

O novo último elemento é removido e inserido na terceira posição para a lista se tornar:

Z, y, x, v, w

O novo último elemento é removido e inserido na quarta posição para a lista se tornar:

Z, y, x, w, v

Observe que o tamanho da lista nunca mudou para cada resultado. Nesse caso, se J fosse o índice do último elemento, o valor de J não mudaria no processo. Enquanto o valor do índice I, desde o início, mudaria de 0 a 3. Então, eu sou incrementado até que esteja logo abaixo de J por uma unidade. Essa maneira de reverter é a maneira de remover e inserir.

Dessa forma, não pode ser usado com a lista de tamanho fixo, porque um elemento não pode ser removido com a lista de tamanho fixo.

Reverter trocando

O método principal a ser usado aqui é o método set () da interface da lista, cuja sintaxe completa é:

E set (índice int, e elemento)

O primeiro argumento para este método é o índice de um determinado elemento na lista. O segundo argumento é o elemento para substituir o elemento na posição do índice. O programa seguinte troca para uma lista de tamanho fixo.

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Personagem [] arr = novo caractere [] 'v', 'w', 'x', 'y', 'z';
Lista lst = matrizes.aslist (arr);
int j = lst.tamanho () - 1;
para (int i = 0; ichar temp = LST.obtenha (j);
LST.Conjunto (J, LST.Entendi));
LST.set (i, temp);
J--;

Sistema.fora.println (LST);

A saída é:

[Z, Y, X, W, V]

A troca usa o código clássico para trocar dois valores. Nesse caso, o código é:

char temp = LST.obtenha (j);
LST.Conjunto (J, LST.Entendi));
LST.set (i, temp);

Na declaração de inicialização, é possível inicializar J no loop for. Também é possível diminuir J na declaração de próxima alfera do loop for. Duas expressões, neste caso, são separadas por uma vírgula. O loop anterior anterior é recodificado da seguinte forma:

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Personagem [] arr = novo caractere [] 'v', 'w', 'x', 'y', 'z';
Lista lst = matrizes.aslist (arr);
para (int i = 0, j = lst.tamanho () - 1; euchar temp = LST.obtenha (j);
LST.Conjunto (J, LST.Entendi));
LST.set (i, temp);

Sistema.fora.println (LST);

Aqui, um loop One-For está lidando com duas variáveis. A saída é a mesma, como mostrado abaixo:

[Z, Y, X, W, V]

Revertendo por remover e inserir

A maneira de remover e inserir não pode funcionar com a lista de tamanho fixo retornado. No entanto, pode funcionar com as classes de lista predefinidas. Dessa forma, usa o método add () da lista, cuja sintaxe é:

Void Add (Int Index, E elemento)

O "add" aqui significa inserir. Isto é: insira o elemento e no índice especificado. Após a inserção, todos os elementos à direita são deslocados em um lugar.

Ele também usa o método Remone (), cuja sintaxe é:

E remover (índice int)

Isso significa: remover o elemento no índice especificado e devolvê -lo. O programa a seguir remove e inserir (para reversão):

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Arraylist AL = novo Arraylist();
al.add ('v'); al.add ('w'); al.add ('x'); al.add ('y'); al.add ('z');
int j = al.tamanho () - 1;
para (int i = 0; ichar temp = al.remover (j);
al.add (i, temp);

Sistema.fora.println (Al);

A saída é:

[Z, Y, X, W, V]

Como esperado e para este programa, o valor de J não muda do ponto de vista geral.

É possível inicializar J na declaração de inicialização no loop for. Duas expressões, neste caso, são separadas por uma vírgula. O loop anterior anterior é recodificado da seguinte forma:

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Arraylist AL = novo Arraylist();
al.add ('v'); al.add ('w'); al.add ('x'); al.add ('y'); al.add ('z');
para (int i = 0, j = al.tamanho () - 1; eual.adicione (eu, al.remover (j));

Sistema.fora.println (Al);

A saída é:

[Z, Y, X, W, V]

Como esperado.

Conclusão

Este artigo explicou que uma lista pode ser revertida usando o método estático reverso () da classe de coleções, onde o objeto da lista se torna o argumento do método. Além disso, uma lista também pode ser revertida manualmente, trocando elementos ou usando a remoção e inserção. Esperamos que você tenha achado este artigo útil. Verifique os outros artigos de dica do Linux para obter mais dicas e tutoriais.