Java >> Programma Java >  >> Java

Ordinamento degli array in Java

Possiamo utilizzare i seguenti approcci per ordinare gli array in Java.

  1. Ordinamento di un array in Java utilizzando Arrays.sort()
  2. Ordinamento parte di un array in Java usando Arrays.sort()
  3. Ordinamento di un array di oggetti in Java utilizzando Arrays.sort()
  4. Ordinamento di un array in ordine inverso
  5. Algoritmi di ordinamento degli array in Java
    • Ordinamento selezione
    • Ordinamento inserimento
    • Ordinamento Heap
    • Ordinamento unisci
    • Ordinamento rapido
    • Ordinamento bolla
    • Ordinamento shell
    • Ordinamento secchio
    • Ordinamento Radix
    • Ordinamento conteggio


Ordinamento di un array in Java utilizzando Arrays.sort()

Il metodo Arrays.sort() ordina l'array di oggetti specificato in ordine crescente, secondo l'ordine naturale dei suoi elementi. Tutti gli elementi nell'array devono implementare l'interfaccia Comparable.

Riferimento:http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html

Esempio di ordinamento di array usando Arrays.sort()

    int[] numbers = { 15, 2, 33, 14, 5 };
    Arrays.sort(numbers);

    System.out.println("array contents after sorting : ");
    for (int num : numbers) {
      System.out.println(num);
    }

Uscita:

contenuto dell'array dopo l'ordinamento :
2
5
14
15
33

Ordinamento parte di un array in Java usando Arrays.sort()

L'overloaded Arrays.sort() può anche ordinare un intervallo all'interno dell'array.

Sintassi:


sort(int[] a, int fromIndex, int toIndex)


Ecco un esempio che ordina i primi 5 elementi in ordine crescente.

    int[] numbers = { 15, 2, 33, 14, 5,17,45,78,2 };
    //sort first 5 elements in array
    Arrays.sort(numbers,0,5);

    System.out.println("array contents after sorting : ");
    for (int num : numbers) {
      System.out.println(num);
    }

Uscita:

contenuto dell'array dopo l'ordinamento :
2
5
14
15
33
17
45
78
2

Ordinamento di un array di oggetti in Java utilizzando Arrays.sort()

sort() è sovraccaricato per usare un comparatore che possiamo usare per ordinare gli oggetti in base alle loro proprietà.

package com.topjavatutorial;

import java.util.Arrays;
import java.util.Comparator;

public class Hello {

  public static void main(String[] args) {

    Employee[] employees = new Employee[3];
    employees[0] = new Employee(123, "John Doe");
    employees[1] = new Employee(231, "Joy Lobo");
    employees[2] = new Employee(231, "Dave Mathias");

    // sort array of employees by name
    Arrays.sort(employees, new Comparator<Employee>() {

      @Override
      public int compare(Employee o1, Employee o2) {
        // TODO Auto-generated method stub
        return o1.getEmpName().compareTo(o2.getEmpName());
      }

    });

    System.out.println("array contents after sorting : ");
    for (Employee emp : employees) {
      System.out.println(emp);
    }
  }

}

Uscita:

contenuto dell'array dopo l'ordinamento :
Dave Mathias
John Doe
Joy Lobo

Ordinamento di un array in ordine inverso

Possiamo usare Arrays.sort(array,Collections.reverseOrder()) per ordinare un array in ordine inverso. Tuttavia, questo approccio non funziona per le primitive.

Ecco un esempio :

package com.topjavatutorial;

import java.util.Arrays;
import java.util.Collections;

public class Hello {

  public static void main(String[] args) {

    String[] countries = {"india","usa","china","russia"};

    Arrays.sort(countries,0,countries.length,Collections.reverseOrder());

    System.out.println("array contents after sorting : ");
    for (String str : countries) {
      System.out.println(str);
    }
  }

}

Uscita:

contenuto dell'array dopo l'ordinamento:
usa
russia
india
cina

Algoritmi di ordinamento degli array in Java

Possiamo anche utilizzare i seguenti algoritmi di ordinamento per ordinare gli elementi dell'array:

Ordinamenti semplici

  1. Selezione Ordina il programma in Java
  2. Programma di ordinamento per inserimento in Java


Ordinamenti efficienti

  1. Programma Heap Sort in Java
  2. Programma Merge Sort in Java
  3. Programma di ordinamento rapido in Java


Ordinamento a bolle e varianti

  1. Programma Bubble Sort in Java
  2. Programma Shell Sort in Java


Ordini di distribuzione

  1. Programma Bucket Sort in Java
  2. Programma Radix Sort in Java
  3. Programma di ordinamento conteggio in Java


Etichetta Java