Java algoritmusok

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ét
  • fill() - cserélje le a gyűjtemény minden elemét a megadott értékre
  • copy() - létrehoz egy másolatot az elemekről a megadott forrástól a célig
  • swap() - felcseréli a gyűjtemény két elemét
  • addAll() - 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ényben
  • disjoint() - 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 

érdekes cikkek...