Јава алгоритми

У овом упутству ћемо научити о различитим алгоритмима које пружа оквир Јава колекција уз помоћ примера.

Оквир Јава колекција пружа различите алгоритме који се могу користити за манипулисање елементима ускладиштеним у структурама података.

Алгоритми у Јави су статичне методе које се могу користити за извођење различитих операција над колекцијама.

Будући да се алгоритми могу користити у различитим колекцијама, они су познати и као генерички алгоритми .

Погледајмо примену различитих метода доступних у оквиру колекција.

1. Сортирање помоћу сорт ()

sort()Поступак обезбеђује оквир колекција се користи за сортирање елемената. На пример,

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

Оутпут

 Неразврстана листа низова: (4, 2, 3) Сортирана листа низова: (2, 3, 4) 

Овде се сортирање одвија у природном редоследу (узлазно). Међутим, можемо прилагодити редослед сортирања sort()методе помоћу интерфејса упоређивача.

Да бисте сазнали више, посетите Јава сортирање.

2. Насумично премештање помоћу насумичног премештања ()

shuffle()Метода збирки оквира Јава се користе да уништавају било какво наређење садашњости у структури података. Ради управо супротно од сортирања. На пример,

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

Оутпут

 Сортирани АрраиЛист: (1, 2, 3) АрраиЛист користећи насумично премештање: (2, 1, 3) 

Када покренемо програм, shuffle()метода ће вратити случајни излаз.

Алгоритам мешања се углавном користи у играма где желимо случајни излаз.

3. Рутинска манипулација подацима

У Јави, оквир збирки пружа различите методе које се могу користити за манипулисање подацима.

  • reverse() - обрће редослед елемената
  • fill() - сваки елемент у колекцији заменити наведеном вредношћу
  • copy() - креира копију елемената од наведеног извора до одредишта
  • swap() - замењује положај два елемента у колекцији
  • addAll() - додаје све елементе колекције у другу колекцију

На пример,

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

Оутпут

 АрраиЛист1: (1, 2) Обрнути АрраиЛист1: (2, 1) АрраиЛист1 помоћу свап (): (1, 2) АрраиЛист2 помоћу аддАЛл (): (1, 2) АрраиЛист1 помоћу филл (): (0, 0) АрраиЛист2 помоћу цопи (): (0, 0) 

Напомена : Током извођења copy()методе обе листе треба да буду исте величине.

4. Претраживање помоћу бинариСеарцх ()

binarySearch()Начин на Јава Цоллецтионс Фрамеворк претраге за одредјеног елемента. Враћа позицију елемента у наведеним колекцијама. На пример,

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

Оутпут

 Позиција 3 је 2. 

Напомена : Колекцију треба сортирати пре извођења binarySearch()методе.

Да бисте сазнали више, посетите Јава Бинарно претраживање.

5. Састав

  • frequency() - враћа број колико је пута елемент присутан у колекцији
  • disjoint() - проверава да ли две колекције садрже неки заједнички елемент

На пример,

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

Оутпут

 АрраиЛист1: (1, 2, 3, 2) Број 2: 2 АрраиЛист2: (5, 6) Две листе су неповезане: тачно 

6. Проналажење екстремних вредности

У min()и max()Поступци према збирки оквира Јава се користе да пронађу минимални и максимални елемената, респективно. На пример,

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

Оутпут

 Минимални елемент: 1 Максимални елемент: 3 

Занимљиви Чланци...