В этом руководстве мы узнаем о различных алгоритмах, предоставляемых платформой коллекций 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); ) )
Вывод
Несортированный список массивов: (4, 2, 3) Список отсортированных массивов: (2, 3, 4)
Здесь сортировка происходит в естественном порядке (по возрастанию). Однако мы можем настроить порядок сортировки sort()
метода с помощью интерфейса Comparator.
Чтобы узнать больше, посетите 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