English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Guida di base Java

Java Controllo dei flussi

Java Array

Java Orientato agli oggetti (I)

Java Orientato agli oggetti (II)

Java Orientato agli oggetti (III)

Gestione delle eccezioni Java

Java Elenco (List)

Java Queue (Coda)

Map di Java

Set di Java

Input/Output (I/O) di Java

Reader/Writer di Java

Altri argomenti di Java

Metodo sort() di Java

Il metodo sort() della struttura di insieme utilizza l'algoritmo di ordinamento di fusione per ordinare gli elementi dell'insieme.

L'algoritmo di ordinamento di fusione si basa sul principio di divide et impera. Per ulteriori informazioni sull'algoritmo di ordinamento di fusione, visitare l'algoritmo di ordinamento di fusione.

Prendiamo come esempio il metodo sort().

Esempio: ordinamento crescente

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args) {
        //创建数组列表
        ArrayList<Integer> numbers = new ArrayList<>();
        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);
        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("ArrayList ordinato: " + numbers);
    }
}

Risultato di output

ArrayList non ordinata: [4, 2, 3]
ArrayList ordinato: [2, 3, 4]

Come vedete, per impostazione predefinita, l'ordinamento avviene in ordine naturale (crescente). Tuttavia, possiamo personalizzare l'ordine di ordinamento del metodo sort().

Ordinamento personalizzato

In Java, è possibile personalizzare il metodo sort(), utilizzando l'interfaccia Comparator per eseguire l'ordinamento in senso inverso.

Esempio: ordinamento decrescente

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Main {
    public static void main(String[] args) {
        //创建数组列表
        ArrayList<Integer> numbers = new ArrayList<>();
        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);
        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("Natural Sorting: " + numbers);
        //使用自定义的sort()方法
        Collections.sort(numbers, new CustomComparator());
        System.out.println("Customized Sorting: " + numbers);
    }
}
class CustomComparator implements Comparator<Integer> {
    @Override
    public int compare(Integer animal1, Integer animal2) {
        int value = animal1.compareTo(animal2);
        // Gli elementi vengono ordinati in ordine inverso
        if (value > 0) {
            return -1;
        }
        else if (value < 0) {
            return 1;
        }
        else {
            return 0;
        }
    }
}

Risultato di output

ArrayList non ordinata: [4, 2, 3]
Ordinamento naturale: [2, 3, 4]
Ordinamento personalizzato: [4, 3, 2]

Nell'esempio sopra, abbiamo utilizzato il metodo sort() e CustomComparator come parametro.

Qui, CustomComparator è una classe che implementa l'interfaccia Comparator. Scopri di più sull'interfaccia Java Comparator.

Poi ricorda il metodo compare(). Questo metodo ora ordina gli elementi in ordine inverso.