Como classificar uma lista vinculada em Java

Classifique sua lista vinculada em Java.

Ordenar uma lista encadeada em Java

Passo 1

Declare a lista vinculada criando um novo objeto LinkedList e atribuindo-o a uma variável LinkedList. LinkedList herda da classe de lista genérica, portanto, qualquer método que a lista aceita também será aceito pelo objeto LinkedList.

"" LinkedList l = new LinkedList (); ""

Passo 2

Adicione objetos do mesmo tipo (como números inteiros) à lista. Estes podem ser objetos de qualquer tipo, mas para poder classificar a lista encadeada, todos eles devem ser do mesmo tipo.

Passo 3

Use o método List.addFirst para inserir novos objetos no início da lista, para que os objetos que você adicionar estejam na ordem inversa. Se você quiser adicioná-los ao final da lista, use o método List.addLast.

"" list.addFirst (1); list.addFirst (3); list.addFirst (2); ""

Passo 4

Use um iterador para iterar na lista e imprima-o antes e depois para ver o que o método de classificação está fazendo.

"" para (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} ""

Classificar usando os comparadores padrão e personalizados

Passo 1

Classifique a lista com o comparador padrão. Um comparador é um objeto que compara dois objetos. O objeto de comparação padrão usa o operador menor que, portanto, a lista será classificada em ordem crescente. Para classificar a lista, use o método estático Collections.sort.

"" Collections.sort (lista); ""

Passo 2

Classifique a lista com um comparador personalizado escrevendo uma classe que implemente uma interface de comparação e transmita uma instância como um argumento para a classificação. A classe que implementa o comparador simplesmente precisa implementar o método simples "comparar".

"" public class GreaterThan implementa Comparador else if (x == y) {return 0;} else {return 1;}}} ""

Passo 3

Use a chamada para o Collections.sort passando uma nova instância do GreaterThan como um segundo argumento. Como os objetos maiores serão classificados anteriormente na lista, a lista será classificada em ordem decrescente em vez de ascendente. Como alternativa, se você solicitar uma lista de objetos de uma classe personalizada que você mesmo escreveu, essa classe poderá implementar a interface Comparable, em vez de usar uma classe Comparator separada.

"" Collections.sort (lista, novo GreaterThan ()); ""