В този урок ще научим за различни алгоритми, предоставени от рамката на Java колекции с помощта на примери.
Рамката на колекциите Java предоставя различни алгоритми, които могат да се използват за манипулиране на елементи, съхранявани в структури от данни.
Алгоритмите в Java са статични методи, които могат да се използват за извършване на различни операции върху колекции.
Тъй като алгоритмите могат да се използват в различни колекции, те са известни и като общи алгоритми .
Нека да видим прилагането на различни методи, налични в рамките на колекциите.
1. Сортиране с помощта на sort ()
В 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); ) )
Изход
Несортиран ArrayList: (4, 2, 3) Сортиран ArrayList: (2, 3, 4)
Тук сортирането се извършва в естествен ред (възходящ ред). Въпреки това можем да персонализираме реда за сортиране на sort()
метода, използвайки интерфейса за сравнение.
За да научите повече, посетете Java Sorting.
2. Разбъркване с помощта на разбъркване ()
В shuffle()
метода на колекции рамките на Java се използва за унищожаване на всеки вид, за присъства в структурата на данните. Прави точно обратното на сортирането. Например,
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); ) )
Изход
Сортиран ArrayList: (1, 2, 3) ArrayList с използване на разбъркване: (2, 1, 3)
Когато стартираме програмата, shuffle()
методът ще върне произволен изход.
Алгоритъмът за разбъркване се използва главно в игри, където искаме произволен изход.
3. Рутинна манипулация с данни
В Java рамката за колекции предоставя различни методи, които могат да се използват за манипулиране на данни.
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); ) )
Изход
ArrayList1: (1, 2) Обратен ArrayList1: (2, 1) ArrayList1 Използване на swap (): (1, 2) ArrayList2 с използване на addALl (): (1, 2) ArrayList1 с използване на fill (): (0, 0) ArrayList2 с използване копие (): (0, 0)
Забележка : Докато изпълнявате copy()
метода, двата списъка трябва да бъдат с еднакъв размер.
4. Търсене чрез binarySearch ()
В binarySearch()
метода на колекции рамкови търси Java за посочения елемент. Той връща позицията на елемента в посочените колекции. Например,
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()
метода.
За да научите повече, посетете Java Binary Search.
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); ) )
Изход
ArrayList1: (1, 2, 3, 2) Брой 2: 2 ArrayList2: (5, 6) Два списъка не са свързани: true
6. Намиране на екстремни ценности
Методите min()
и max()
на рамката на колекциите на Java се използват, за да се намерят съответно минимумът и максимумът елементи. Например,
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