Algorytmy Java

W tym samouczku za pomocą przykładów dowiemy się o różnych algorytmach udostępnianych przez strukturę kolekcji Java.

Struktura kolekcji Java udostępnia różne algorytmy, których można używać do manipulowania elementami przechowywanymi w strukturach danych.

Algorytmy w Javie to statyczne metody, których można używać do wykonywania różnych operacji na kolekcjach.

Ponieważ algorytmy mogą być używane w różnych kolekcjach, są one również znane jako algorytmy ogólne .

Zobaczmy implementację różnych metod dostępnych w ramach kolekcji.

1. Sortowanie za pomocą sort ()

sort()Metoda zapewnia ramach kolekcji służy do sortowania elementów. Na przykład,

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

Wynik

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

Tutaj sortowanie odbywa się w porządku naturalnym (rosnąco). Możemy jednak dostosować kolejność sortowania sort()metody za pomocą interfejsu komparatora.

Aby dowiedzieć się więcej, odwiedź stronę Sortowanie Java.

2. Tasowanie przy użyciu shuffle ()

shuffle()Metoda zbiorów ramach Java służy do niszczenia wszelkiego rodzaju zlecenia obecnej w strukturze danych. Działa dokładnie odwrotnie niż sortowanie. Na przykład,

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

Wynik

 Sorted ArrayList: (1, 2, 3) ArrayList przy użyciu shuffle: (2, 1, 3) 

Po uruchomieniu programu shuffle()metoda zwróci losowe dane wyjściowe.

Algorytm tasowania jest używany głównie w grach, w których chcemy losowego wyjścia.

3. Rutynowe manipulowanie danymi

W języku Java struktura kolekcji udostępnia różne metody, których można używać do manipulowania danymi.

  • reverse() - odwraca kolejność elementów
  • fill() - zamień każdy element w kolekcji na określoną wartość
  • copy() - tworzy kopię elementów z określonego źródła do miejsca docelowego
  • swap() - zamienia pozycję dwóch elementów w kolekcji
  • addAll() - dodaje wszystkie elementy kolekcji do innej kolekcji

Na przykład,

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

Wynik

 ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 Using swap (): (1, 2) ArrayList2 using addALl (): (1, 2) ArrayList1 using fill (): (0, 0) ArrayList2 using copy (): (0, 0) 

Uwaga : podczas wykonywania tej copy()metody obie listy powinny mieć ten sam rozmiar.

4. Wyszukiwanie za pomocą binarySearch ()

binarySearch()Metoda Java wyszukiwań zbiory ramowych dla określonego elementu. Zwraca pozycję elementu w określonych kolekcjach. Na przykład,

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

Wynik

 Pozycja 3 to 2. 

Uwaga : kolekcję należy posortować przed wykonaniem binarySearch()metody.

Aby dowiedzieć się więcej, odwiedź witrynę Java Binary Search.

5. Skład

  • frequency() - zwraca liczbę razy, kiedy element jest obecny w kolekcji
  • disjoint() - sprawdza, czy dwie kolekcje zawierają jakiś wspólny element

Na przykład,

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

Wynik

 ArrayList1: (1, 2, 3, 2) Liczba 2: 2 ArrayList2: (5, 6) Dwie listy są rozłączne: prawda 

6. Znajdowanie wartości ekstremalnych

Te min()i max()metody zbiorów ramach Java są wykorzystywane w celu znalezienia minimalny i maksymalny elementy, odpowiednio. Na przykład,

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

Wynik

 Element minimalny: 1 Element maksymalny: 3 

Interesujące artykuły...