Algoritmy Java

V tomto tutoriále sa pomocou príkladov dozvieme o rôznych algoritmoch poskytovaných rámcom zbierok Java.

Rámec zbierok Java poskytuje rôzne algoritmy, ktoré možno použiť na manipuláciu s prvkami uloženými v dátových štruktúrach.

Algoritmy v Jave sú statické metódy, ktoré možno použiť na vykonávanie rôznych operácií so zbierkami.

Pretože algoritmy môžu byť použité v rôznych zbierkach, sú známe aj ako všeobecné algoritmy .

Pozrime sa na implementáciu rôznych metód dostupných v rámci kolekcií.

1. Triedenie pomocou sort ()

Na sort()triedenie prvkov sa používa metóda, ktorú poskytuje rámec kolekcií. Napríklad,

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

Výkon

 Nezoradený zoznam polí: (4, 2, 3) Zoradený zoznam polí: (2, 3, 4) 

Triedenie tu prebieha v prirodzenom poradí (vzostupne). Poradie triedenia sort()metódy však môžeme upraviť pomocou rozhrania komparátora.

Ak sa chcete dozvedieť viac, navštívte Triedenie Java.

2. Náhodné miešanie pomocou náhodného výberu ()

shuffle()Spôsob zbierok rámca Java sa používa na zničiť akékoľvek poradie, prítomné v dátovej štruktúre. Je to pravý opak triedenia. Napríklad,

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

Výkon

 Zoradené ArrayList: (1, 2, 3) ArrayList pomocou náhodného výberu: (2, 1, 3) 

Keď spustíme program, shuffle()metóda vráti náhodný výstup.

Algoritmus miešania sa používa hlavne v hrách, kde chceme náhodný výstup.

3. Rutinná manipulácia s údajmi

V prostredí Java poskytuje kolekčný rámec rôzne metódy, ktoré možno použiť na manipuláciu s údajmi.

  • reverse() - obráti poradie prvkov
  • fill() - nahraďte každý prvok v zbierke zadanou hodnotou
  • copy() - vytvorí kópiu prvkov zo zadaného zdroja do cieľa
  • swap() - zamení pozíciu dvoch prvkov v zbierke
  • addAll() - pridá všetky prvky kolekcie do inej kolekcie

Napríklad,

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

Výkon

 ArrayList1: (1, 2) Obrátený ArrayList1: (2, 1) ArrayList1 pomocou swapu (): (1, 2) ArrayList2 pomocou addALl (): (1, 2) ArrayList1 pomocou fill (): (0, 0) ArrayList2 pomocou copy (): (0, 0) 

Poznámka : Pri vykonávaní copy()metódy by mali byť oba zoznamy rovnakej veľkosti.

4. Vyhľadávanie pomocou binarySearch ()

binarySearch()Spôsob Java zbierky rámcových hľadá zadaný prvok. Vráti pozíciu prvku v zadaných kolekciách. Napríklad,

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

Výkon

 Pozícia 3 je 2. 

Poznámka : Zbierka by mala byť pred vykonaním binarySearch()metódy triedená .

Ak sa chcete dozvedieť viac, navštívte Java Binary Search.

5. Zloženie

  • frequency() - vráti počet výskytov prvku v kolekcii
  • disjoint() - skontroluje, či dve zbierky obsahujú nejaký spoločný prvok

Napríklad,

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

Výkon

 ArrayList1: (1, 2, 3, 2) Počet 2: 2 ArrayList2: (5, 6) Dva zoznamy sú disjunktné: true 

6. Hľadanie extrémnych hodnôt

Na vyhľadanie minimálnych a maximálnych prvkov sa používajú metódy min()a max()rámca kolekcie Java. Napríklad,

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

Výkon

 Minimálny prvok: 1 Maximálny prvok: 3 

Zaujímavé články...