Java algoritmi

V tej vadnici bomo s pomočjo primerov spoznali različne algoritme, ki jih ponuja ogrodje zbirk Java.

Okvir zbirk Java ponuja različne algoritme, s katerimi je mogoče manipulirati z elementi, shranjenimi v podatkovnih strukturah.

Algoritmi v Javi so statične metode, s katerimi lahko izvajamo različne operacije nad zbirkami.

Ker se algoritmi lahko uporabljajo v različnih zbirkah, so ti znani tudi kot generični algoritmi .

Oglejmo si izvajanje različnih metod, ki so na voljo v okviru zbirk.

1. Razvrščanje z uporabo sort ()

Za sort()razvrščanje elementov se uporablja metoda, ki jo zagotavlja okvir zbirk. Na primer

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

Izhod

 Unsorted ArrayList: (4, 2, 3) Sorted ArrayList: (2, 3, 4) 

Tu sortiranje poteka po naravnem vrstnem redu (naraščajoče). Vrstni red razvrščanja sort()metode pa lahko prilagodimo z vmesnikom Comparator.

Če želite izvedeti več, obiščite razvrščanje Java.

2. Naključno predvajanje s premešavanjem ()

shuffle()Metoda okviru Java zbirk se uporablja, da se uniči vse vrste naročil trenutno v strukturi podatkov. Deluje ravno nasprotno od razvrščanja. Na primer

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

Izhod

 Razvrščen ArrayList: (1, 2, 3) ArrayList z uporabo naključnega mešanja: (2, 1, 3) 

Ko zaženemo program, bo shuffle()metoda vrnila naključni izhod.

Algoritem za mešanje se uporablja predvsem v igrah, kjer želimo naključni izhod.

3. Redna manipulacija s podatki

V Javi okvir zbirk ponuja različne metode, s katerimi je mogoče manipulirati s podatki.

  • reverse() - spremeni vrstni red elementov
  • fill() - zamenjaj vsak element v zbirki z določeno vrednostjo
  • copy() - ustvari kopijo elementov iz navedenega vira do cilja
  • swap() - zamenja položaj dveh elementov v zbirki
  • addAll() - doda vse elemente zbirke drugi zbirki

Na primer

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

Izhod

 ArrayList1: (1, 2) Obrnjeni ArrayList1: (2, 1) ArrayList1 z uporabo swap (): (1, 2) ArrayList2 z uporabo addALl (): (1, 2) ArrayList1 z uporabo fill (): (0, 0) ArrayList2 z uporabo copy (): (0, 0) 

Opomba : Med izvajanjem copy()metode morata biti oba seznama enake velikosti.

4. Iskanje s pomočjo binarySearch ()

binarySearch()Metoda Java zbirk okvirnih išče določen element. Vrne položaj elementa v določenih zbirkah. Na primer

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

Izhod

 Položaj 3 je 2. 

Opomba : Zbirko je treba razvrstiti pred izvajanjem binarySearch()metode.

Če želite izvedeti več, obiščite binarno iskanje Java.

5. Sestava

  • frequency() - vrne število, kolikokrat je element prisoten v zbirki
  • disjoint() - preveri, ali dve zbirki vsebujeta skupni element

Na primer

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

Izhod

 ArrayList1: (1, 2, 3, 2) Število 2: 2 ArrayList2: (5, 6) Dva seznama sta nepovezana: true 

6. Iskanje ekstremnih vrednot

Pri min()in max()metode okviru Java zbirk se uporablja, da bi našli najnižje in najvišje elementi, oz. Na primer

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

Izhod

 Najmanjši element: 1 Največji element: 3 

Zanimive Članki...