Ebben az oktatóanyagban a Java gyűjtemények keretrendszerének különböző algoritmusait ismerhetjük meg példák segítségével.
A Java gyűjtemények keretrendszere különféle algoritmusokat kínál, amelyek felhasználhatók az adatstruktúrákban tárolt elemek kezelésére.
A Java algoritmusok statikus módszerek, amelyek felhasználhatók különféle műveletek végrehajtására a gyűjteményeken.
Mivel az algoritmusok különféle gyűjteményeken használhatók, ezeket általános algoritmusoknak is nevezik .
Lássuk a gyűjtemények keretein belül elérhető különböző módszerek megvalósítását.
1. Rendezés a rendezés () használatával
Az sort()
elemek rendezésére a gyűjtemény keretrendszer által biztosított módszert alkalmazzák. Például,
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); ) )
Kimenet
Rendezetlen tömblista: (4, 2, 3) Rendezett tömblista: (2, 3, 4)
Itt a rendezés természetes sorrendben történik (növekvő sorrendben). A sort()
módszer rendezési sorrendjét azonban a Comparator felület segítségével testre szabhatjuk .
További információkért látogasson el a Java rendezés oldalra.
2. Keverés keverés (shuffle) használatával
A shuffle()
Java gyűjtemények keretrendszerének módszerét az adatstruktúrában jelen lévő bármilyen sorrend megsemmisítésére használják. A válogatásnak éppen az ellenkezőjét teszi. Például,
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); ) )
Kimenet
Rendezett tömblista: (1, 2, 3) ArrayList shuffle használatával: (2, 1, 3)
A program futtatásakor a shuffle()
módszer véletlenszerű kimenetet ad vissza.
A keverési algoritmust főleg olyan játékokban használják, ahol véletlenszerű kimenetet akarunk.
3. Rutinos adatkezelés
A Java-ban a gyűjtemények keretrendszere különböző módszereket kínál, amelyek felhasználhatók az adatok manipulálására.
reverse()
- megfordítja az elemek sorrendjétfill()
- cserélje le a gyűjtemény minden elemét a megadott értékrecopy()
- létrehoz egy másolatot az elemekről a megadott forrástól a céligswap()
- felcseréli a gyűjtemény két elemétaddAll()
- a gyűjtemény összes elemét hozzáadja egy másik gyűjteményhez
Például,
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); ) )
Kimenet
ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 swap () használatával: (1, 2) ArrayList2 az addALl () használatával: (1, 2) ArrayList1 a fill () használatával: (0, 0) ArrayList2 a másolat (): (0, 0)
Megjegyzés : A copy()
módszer végrehajtása közben mindkét listának azonos méretűnek kell lennie.
4. Keresés a binarySearch () használatával
A binarySearch()
Java gyűjtemények keretrendszere metódus keresi a megadott elemet. Visszaadja az elem pozícióját a megadott gyűjteményekben. Például,
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); ) )
Kimenet
A 3 helyzete 2.
Megjegyzés : A gyűjtemény végrehajtása előtt rendezni kell binarySearch()
.
Ha többet szeretne megtudni, látogasson el a Java bináris keresésre.
5. Összetétel
frequency()
- visszaadja annak a számnak a számát, ahányszor egy elem jelen van a gyűjteménybendisjoint()
- ellenőrzi, hogy két gyűjtemény tartalmaz-e valamilyen közös elemet
Például,
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); ) )
Kimenet
ArrayList1: (1, 2, 3, 2) 2: 2 száma: ArrayList2: (5, 6) Két lista diszjunkt: igaz
6. Extrém értékek megtalálása
A Java gyűjtemény keretrendszerének min()
és max()
metódusainak felhasználásával megtalálhatók a minimum, illetve a maximum elemek. Például,
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); ) )
Kimenet
Minimális elem: 1 Maximális elem: 3