Java алгоритми

В този урок ще научим за различни алгоритми, предоставени от рамката на 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 

Интересни статии...