Java algoritmid

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 ümber
  • fill() - asendada kõik kollektsiooni elemendid määratud väärtusega
  • copy() - loob koopia elementidest määratud allikast sihtkohta
  • swap() - vahetab kogu kahe elemendi positsiooni
  • addAll() - 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 arvu
  • disjoint() - 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 

Huvitavad Artiklid...