Java algoritmi

U ovom ćemo uputstvu uz primjere naučiti o različitim algoritmima koje pruža okvir Java zbirki.

Okvir Java zbirki pruža razne algoritme koji se mogu koristiti za manipulaciju elementima pohranjenim u podatkovnim strukturama.

Algoritmi u Javi su statične metode koje se mogu koristiti za izvođenje različitih operacija nad zbirkama.

Budući da se algoritmi mogu koristiti na raznim zbirkama, oni su poznati i kao generički algoritmi .

Pogledajmo primjenu različitih metoda dostupnih u okviru zbirki.

1. Sortiranje pomoću sort ()

sort()Metoda daje okvir zbirki koristi za sortiranje elemenata. Na primjer,

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

Izlaz

 Nerazvrstani popis polja: (4, 2, 3) Poredani popis polja: (2, 3, 4) 

Ovdje se sortiranje odvija prirodnim redoslijedom (rastućim redoslijedom). Međutim, možemo prilagoditi redoslijed sortiranja sort()metode pomoću sučelja za usporedbu.

Da biste saznali više, posjetite Java Sortiranje.

2. Nasumično preslagivanje ()

shuffle()Metoda Java zbirki okvira se koristi za uništavanje bilo kakve narudžbe prisutan u strukturi podataka. Radi upravo suprotno od sortiranja. Na primjer,

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

Izlaz

 Sortirani ArrayList: (1, 2, 3) ArrayList pomoću preslagivanja: (2, 1, 3) 

Kada pokrenemo program, shuffle()metoda će vratiti slučajni izlaz.

Algoritam miješanja uglavnom se koristi u igrama gdje želimo slučajni izlaz.

3. Rutinska manipulacija podacima

U Javi okvir zbirki pruža različite metode koje se mogu koristiti za manipulaciju podacima.

  • reverse() - obrće redoslijed elemenata
  • fill() - zamijeni svaki element u zbirci navedenom vrijednošću
  • copy() - stvara kopiju elemenata od navedenog izvora do odredišta
  • swap() - zamijeni položaj dva elementa u zbirci
  • addAll() - dodaje sve elemente kolekcije u drugu kolekciju

Na primjer,

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

Izlaz

 ArrayList1: (1, 2) Obrnuti ArrayList1: (2, 1) ArrayList1 pomoću swap (): (1, 2) ArrayList2 pomoću addALl (): (1, 2) ArrayList1 pomoću fill (): (0, 0) ArrayList2 pomoću kopija (): (0, 0) 

Napomena : Tijekom izvođenja copy()metode oba popisa trebala bi biti iste veličine.

4. Pretraživanje pomoću binarySearch ()

binarySearch()Metoda Java zbirke okvirnih pretraživanja za određeni element. Vraća položaj elementa u navedenim zbirkama. Na primjer,

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

Izlaz

 Položaj 3 je 2. 

Napomena : Zbirku treba sortirati prije izvođenja binarySearch()metode.

Da biste saznali više, posjetite Java Binarno pretraživanje.

5. Sastav

  • frequency() - vraća broj koliko je puta element prisutan u zbirci
  • disjoint() - provjerava sadrže li dvije zbirke neki zajednički element

Na primjer,

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

Izlaz

 ArrayList1: (1, 2, 3, 2) Broj 2: 2 ArrayList2: (5, 6) Dva su popisa disjuktna: true 

6. Pronalaženje ekstremnih vrijednosti

U min()te max()metode Java zbirki okvira koriste kako bi pronašli minimalne i maksimalne elemente, respektivno. Na primjer,

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

Izlaz

 Minimalni element: 1 Maksimalni element: 3 

Zanimljivi članci...