logo

Come ordinare un elenco in Java

Possiamo utilizzare i seguenti metodi per ordinare l'elenco:

programmazione di struct array c
  • Utilizzando il metodo stream.sorted()
  • Utilizzando il metodo Comparator.reverseOrder()
  • Utilizzando il metodo Comparator.naturalOrder()
  • Utilizzando il metodo Collections.reverseOrder()
  • Utilizzando il metodo Collections.sort()

Interfaccia JavaStream

L'interfaccia Java Stream fornisce due metodi per ordinare l'elenco:

metodo sorted()

L'interfaccia del flusso fornisce un metodo sorted() per ordinare un elenco. È definito nell'interfaccia Stream che è presente in pacchetto java.util . Restituisce un flusso ordinato secondo l'ordine naturale. Se gli elementi non sono confrontabili, genera java.lang.ClassCastException. La firma del metodo è:

 Stream sorted() 

Parametro

T: È un tipo di elemento stream.

Java Stream.sorted (comparatore comparatore)

Restituisce inoltre un flusso ordinato in base al comparatore fornito. È stabile per un flusso ordinato. La firma del metodo è:

 Stream sorted(Comparator comparator) 

Parametri

  • T è il tipo di elemento del flusso.
  • comparatore da utilizzare per confrontare gli elementi

Esempio

Nell'esempio seguente, abbiamo utilizzato i seguenti metodi:

ls comanda Linux
  • In Java 8, stream() è un'API utilizzata per elaborare raccolte di oggetti.
  • Il metodo Collect() viene utilizzato per ricevere elementi da un flusso e memorizzarli in una raccolta.
  • toList() restituisce il raccoglitore che raccoglie tutti gli elementi di input in un elenco, in ordine di incontro.

Esempio

 import java.util.*; import java.util.stream.*; public class SortListExample1 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList('Tanu', 'Kamal', 'Suman', 'Lucky', 'Bunty', 'Amit'); List sortedList = slist.stream().sorted().collect(Collectors.toList()); sortedList.forEach(System.out::println); } } 

Produzione:

Come ordinare un elenco in Java

Metodo Java Comparator.reverseOrder()

reverseOrder() è un metodo dell'interfaccia Comparator definito nel pacchetto java.util. Il metodo restituisce un comparatore che impone l'inverso dell'ordinamento naturale. Genera NullPointerException quando si confronta null. La firma del metodo è:

 static <t extends comparable> Comparator reverseOrder() </t>

Paragonabile è anche un'interfaccia che appartiene a un pacchetto java.lang.

Parametri

T: tipo comparabile di elemento da confrontare.

Esempio

int alla conversione di stringhe in Java
 import java.util.*; import java.util.stream.Collectors; public class SortListExample2 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList(&apos;78&apos;, &apos;a&apos;, &apos;m&apos;, &apos;b&apos;, &apos;z&apos;, &apos;c&apos;, &apos;12&apos;, &apos;l&apos;, &apos;1&apos;); ListsortedList=slist.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); sortedList.forEach(System.out::println); } } 

Produzione:

Come ordinare un elenco in Java

Comparatore Java.ordinenaturale()

Il metodo restituisce un comparatore che confronta oggetti comparabili nell'ordine naturale. L'oggetto comparabile restituito è serializzabile. Quando confrontiamo null, genera NullPointerException. Proviene da Java 8. La firma del metodo è:

 Static <t extends comparable> Comparator naturalOrder() </t>
  • Il metodo ordina gli elementi in ordine naturale (ordine crescente).
  • Mette null in alto, se presente.
  • Mette prima gli elementi delle lettere maiuscole in ordine naturale, poi le lettere minuscole nell'ordine naturale, se l'elenco contiene sia lettere minuscole che maiuscole.

Parametri

T: tipo comparabile di elemento da confrontare.

Esempio

 import java.util.*; public class SortListExample3 { public static void main(String[] args) { List country = Arrays.asList(&apos;Russia&apos;, &apos;India&apos;, &apos;China&apos;, &apos;Japan&apos;, &apos;&apos;, &apos;Ghana&apos;); List country1 = Arrays.asList(&apos;Russia&apos;,&apos;india&apos;, &apos;China&apos;, &apos;Japan&apos;, &apos;&apos;, &apos;ghana&apos;); System.out.println(country); //prints the same list as we define country.sort(String.CASE_INSENSITIVE_ORDER); //sorts the list in case insensitive order System.out.println(country1); country.sort(Comparator.naturalOrder()); //sorts list in ascending order System.out.println(country); //sorts list in ascending order (null, capital letter and small letter) country1.sort(Comparator.naturalOrder()); System.out.println(country1); } } 

Produzione:

Come ordinare un elenco in Java

Metodo Java Collections.reverseOrder()

È il metodo della classe Java Collections che appartiene a un pacchetto java.lang. Restituisce un comparatore che impone l'inversione dell'ordinamento naturale. La firma del metodo è:

 public static Comparator reverseOrder() 

Parametri

file system in Linux

La classe degli oggetti confrontati dal comparatore.

Esempio

 import java.util.Arrays; import java.util.Collections; import java.util.List; public class SortListExample4 { public static void main(String args[]) { List list = Arrays.asList(10,1,-20,40,5,-23,0); Collections.sort(list, Collections.reverseOrder()); System.out.println(list); } } 

Produzione:

Come ordinare un elenco in Java

Metodo Java Collections.sort()

La classe Collections ha due metodi per ordinare un elenco:

metodo sort()

Il metodo sort() ordina l'elenco in ordine crescente, secondo l'ordinamento naturale dei suoi elementi. La firma del metodo è:

 public static <t extends comparable> void sort() (List list) </t>

Parametri

T: è un parametro di tipo.

list: l'elenco da ordinare.

Vediamo un altro esempio del metodo Collections.sorts().

css testo in grassetto

Esempio

 import java.util.*; public class SortListExample5 { public static void main(String[] args) { List sList = new ArrayList(); sList.add(&apos;m&apos;); sList.add(&apos;k&apos;); sList.add(&apos;a&apos;); sList.add(&apos;p&apos;); sList.add(&apos;d&apos;); Collections.sort(sList); //sorts array list for(String str: sList) System.out.print(&apos; &apos;+str); } } 

Produzione:

Come ordinare un elenco in Java