Selles õpetuses õpime näidete abil Java-kogude raamistiku pakutavaid erinevaid algoritme.
Java kogude raamistik pakub erinevaid algoritme, mida saab kasutada andmestruktuuridesse salvestatud elementide manipuleerimiseks.
Java algoritmid on staatilised meetodid, mida saab kasutada kollektsioonide erinevate toimingute tegemiseks.
Kuna algoritme saab kasutada erinevates kogudes, on need tuntud ka kui üldised algoritmid .
Vaatame kogude raamistikus saadaolevate erinevate meetodite rakendamist.
1. Sorteerimine sortimise () abil
sort()
Meetod, mida kogusid raames kasutatakse omamoodi elemente. Näiteks,
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äljund
Sorteerimata massiivi loend: (4, 2, 3) sorteeritud massiivi loend: (2, 3, 4)
Siin toimub sorteerimine loomulikus järjekorras (kasvavas järjekorras). Siiski saame sort()
liidese Comparator abil kohandada meetodi sortimisjärjestust .
Lisateabe saamiseks külastage Java sortimist.
2. Segamine juhuslikult ()
shuffle()
Meetod Java kogud raames kasutatakse hävitada mis tahes järjekorras viibivad andmeid struktuuri. See teeb just vastupidist sorteerimisele. Näiteks,
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äljund
Sorteeritud massiivi loend: (1, 2, 3) ArrayList, kasutades juhuslikult: (2, 1, 3)
Programmi käivitamisel shuffle()
tagastab meetod juhusliku väljundi.
Segamisalgoritmi kasutatakse peamiselt mängudes, kus soovime juhuslikku väljundit.
3. Rutiinne andmetöötlus
Java-s pakub kogude raamistik erinevaid meetodeid, mida saab kasutada andmete töötlemiseks.
reverse()
- muudab elementide järjekorra ümberfill()
- asendada kõik kollektsiooni elemendid määratud väärtusegacopy()
- loob koopia elementidest määratud allikast sihtkohtaswap()
- vahetab kogu kahe elemendi positsiooniaddAll()
- lisab kogu kollektsiooni kõik elemendid teisele kollektsioonile
Näiteks,
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äljund
ArrayList1: (1, 2) Tagurpidi ArrayList1: (2, 1) ArrayList1 kasutades swap (): (1, 2) ArrayList2 kasutades addALl (): (1, 2) ArrayList1 kasutades fill (): (0, 0) ArrayList2 kasutades koopia (): (0, 0)
Märkus . copy()
Meetodi teostamisel peaksid mõlemad loendid olema sama suurusega.
4. Otsimine binarySearchi () abil
binarySearch()
Meetod Java kogud raames otsitakse määratud element. See tagastab elemendi positsiooni määratud kogudes. Näiteks,
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äljund
Positsioon 3 on 2.
Märkus . Enne binarySearch()
meetodi sooritamist tuleks kogu sortida .
Lisateabe saamiseks külastage Java binaarotsingut.
5. Koosseis
frequency()
- tagastab elementide koguarvu arvudisjoint()
- kontrollib, kas kaks kogu sisaldavad mõnda ühist elementi
Näiteks,
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äljund
ArrayList1: (1, 2, 3, 2) Arv 2: 2 ArrayList2: (5, 6) Kaks loendit ei ole ühendatud: tõsi
6. Äärmuslike väärtuste leidmine
min()
Ja max()
meetodeid Java kogud raames kasutatakse leida minimaalne ja maksimaalne elementide puhul. Näiteks,
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äljund
Minimaalne element: 1 Maksimaalne element: 3