Algoritmi Java

In questo tutorial, impareremo a conoscere i diversi algoritmi forniti dal framework delle collezioni Java con l'aiuto di esempi.

Il framework delle raccolte Java fornisce vari algoritmi che possono essere utilizzati per manipolare gli elementi memorizzati nelle strutture di dati.

Gli algoritmi in Java sono metodi statici che possono essere utilizzati per eseguire varie operazioni sulle raccolte.

Poiché gli algoritmi possono essere utilizzati su varie raccolte, questi sono noti anche come algoritmi generici .

Vediamo l'implementazione dei diversi metodi disponibili nel framework delle collezioni.

1. Ordinamento utilizzando sort ()

Il sort()metodo fornito dal framework delle collezioni viene utilizzato per ordinare gli elementi. Per esempio,

 import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) ) 

Produzione

 Elenco array non ordinato: (4, 2, 3) Elenco array ordinato: (2, 3, 4) 

Qui l'ordinamento avviene in ordine naturale (ordine crescente). Tuttavia, possiamo personalizzare l'ordinamento del sort()metodo utilizzando l'interfaccia di confronto.

Per saperne di più, visita Ordinamento Java.

2. Mescolare usando shuffle ()

Il shuffle()metodo del framework delle collezioni Java viene utilizzato per distruggere qualsiasi tipo di ordine presente nella struttura dei dati. Fa esattamente l'opposto dell'ordinamento. Per esempio,

 import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("Sorted ArrayList: " + numbers); // Using the shuffle() method Collections.shuffle(numbers); System.out.println("ArrayList using shuffle: " + numbers); ) ) 

Produzione

 Sorted ArrayList: (1, 2, 3) ArrayList utilizzando shuffle: (2, 1, 3) 

Quando eseguiamo il programma, il shuffle()metodo restituirà un output casuale.

L'algoritmo di mescolamento viene utilizzato principalmente nei giochi in cui vogliamo un output casuale.

3. Manipolazione dei dati di routine

In Java, il framework delle collezioni fornisce diversi metodi che possono essere utilizzati per manipolare i dati.

  • reverse() - inverte l'ordine degli elementi
  • fill() - sostituire ogni elemento in una raccolta con il valore specificato
  • copy() - crea una copia degli elementi dall'origine specificata alla destinazione
  • swap() - scambia la posizione di due elementi in una raccolta
  • addAll() - aggiunge tutti gli elementi di una raccolta ad un'altra raccolta

Per esempio,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // Using reverse() Collections.reverse(numbers); System.out.println("Reversed ArrayList1: " + numbers); // Using swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 using swap(): " + numbers); ArrayList newNumbers = new ArrayList(); // Using addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 using addAll(): " + newNumbers); // Using fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 using fill(): " + numbers); // Using copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 using copy(): " + newNumbers); ) ) 

Produzione

 ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 Utilizzando swap (): (1, 2) ArrayList2 utilizzando addALl (): (1, 2) ArrayList1 utilizzando fill (): (0, 0) ArrayList2 utilizzando copy (): (0, 0) 

Nota : durante l'esecuzione del copy()metodo, entrambi gli elenchi devono essere della stessa dimensione.

4. Ricerca utilizzando binarySearch ()

Il binarySearch()metodo del framework delle collezioni Java cerca l'elemento specificato. Restituisce la posizione dell'elemento nelle raccolte specificate. Per esempio,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("The position of 3 is " + pos); ) ) 

Produzione

 La posizione di 3 è 2. 

Nota : la raccolta deve essere ordinata prima di eseguire il binarySearch()metodo.

Per saperne di più, visita Java Binary Search.

5. Composizione

  • frequency() - restituisce il conteggio del numero di volte in cui un elemento è presente nella raccolta
  • disjoint() - controlla se due collezioni contengono qualche elemento comune

Per esempio,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList newNumbers = new ArrayList(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("Two lists are disjoint: " + value); ) ) 

Produzione

 ArrayList1: (1, 2, 3, 2) Conteggio di 2: 2 ArrayList2: (5, 6) Due elenchi sono disgiunti: true 

6. Trovare valori estremi

I metodi min()e max()del framework delle raccolte Java vengono utilizzati per trovare rispettivamente gli elementi minimi e massimi. Per esempio,

 import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using min() int min = Collections.min(numbers); System.out.println("Minimum Element: " + min); // Using max() int max = Collections.max(numbers); System.out.println("Maximum Element: " + max); ) ) 

Produzione

 Elemento minimo: 1 Elemento massimo: 3 

Articoli interessanti...