Algoritmi Java

În acest tutorial, vom afla despre diferiți algoritmi furnizați de cadrul colecțiilor Java cu ajutorul exemplelor.

Cadrul de colecții Java oferă diferiți algoritmi care pot fi folosiți pentru manipularea elementelor stocate în structurile de date.

Algoritmii din Java sunt metode statice care pot fi folosite pentru a efectua diverse operațiuni pe colecții.

Deoarece algoritmii pot fi folosiți pe diverse colecții, aceștia sunt, de asemenea, cunoscuți ca algoritmi generici .

Să vedem implementarea diferitelor metode disponibile în cadrul colecțiilor.

1. Sortarea folosind sort ()

sort()Metoda oferită de cadrul colecțiilor este folosit pentru elemente de sortare. De exemplu,

 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); ) ) 

Ieșire

 ArrayList Unsorted: (4, 2, 3) ArrayList sortat: (2, 3, 4) 

Aici sortarea are loc în ordine naturală (ordine crescătoare). Cu toate acestea, putem personaliza ordinea de sortare a sort()metodei folosind interfața Comparator.

Pentru a afla mai multe, vizitați Sortarea Java.

2. Amestecarea utilizând amestecarea ()

shuffle()Metoda din cadrul colecțiilor Java este folosit pentru a distruge orice fel de ordine prezente în structura de date. Face exact opusul sortării. De exemplu,

 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); ) ) 

Ieșire

 ArrayList sortat: (1, 2, 3) ArrayList folosind shuffle: (2, 1, 3) 

Când rulăm programul, shuffle()metoda va returna o ieșire aleatorie.

Algoritmul de amestecare este utilizat în principal în jocurile în care dorim o ieșire aleatorie.

3. Manipularea de rutină a datelor

În Java, cadrul colecțiilor oferă diferite metode care pot fi utilizate pentru a manipula date.

  • reverse() - inversează ordinea elementelor
  • fill() - înlocuiți fiecare element dintr-o colecție cu valoarea specificată
  • copy() - creează o copie a elementelor de la sursa specificată la destinație
  • swap() - schimbă poziția a două elemente dintr-o colecție
  • addAll() - adaugă toate elementele unei colecții la alte colecții

De exemplu,

 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); ) ) 

Ieșire

 ArrayList1: (1, 2) inversat ArrayList1: (2, 1) ArrayList1 Folosind swap (): (1, 2) ArrayList2 folosind addALl (): (1, 2) ArrayList1 folosind fill (): (0, 0) ArrayList2 folosind copy (): (0, 0) 

Notă : în timpul efectuării copy()metodei, ambele liste trebuie să aibă aceeași dimensiune.

4. Căutarea utilizând binarySearch ()

binarySearch()Metoda de Java căutări cadru colecții pentru elementul specificat. Returnează poziția elementului în colecțiile specificate. De exemplu,

 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); ) ) 

Ieșire

 Poziția 3 este 2. 

Notă : Colecția trebuie sortată înainte de a efectua binarySearch()metoda.

Pentru a afla mai multe, accesați Java Binary Search.

5. Compoziție

  • frequency() - returnează numărul de ori de câte ori un element este prezent în colecție
  • disjoint() - verifică dacă două colecții conțin un element comun

De exemplu,

 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); ) ) 

Ieșire

 ArrayList1: (1, 2, 3, 2) Număr de 2: 2 ArrayList2: (5, 6) Două liste sunt disjuncte: adevărat 

6. Găsirea valorilor extreme

În min()și max()metodele din cadrul colecțiilor Java sunt folosite pentru a găsi elementele minime și maxime, respectiv. De exemplu,

 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); ) ) 

Ieșire

 Element minim: 1 Element maxim: 3 

Articole interesante...