Сортировка массива в порядке возрастания или убывания с помощью Arrays.sort()
Источник:
FreeCodeCamp
Благодаря этой публикации вы узнаете способы сортировки массива в Java по возрастанию или убыванию.
В Java мы используем массивы для хранения набора переменных (с одинаковым типом данных) в одной переменной. Но иногда значения, хранящиеся в массиве, появляются в случайном порядке. Благодаря классу
Arrays в Java у нас есть несколько способов управления массивами, в том числе их сортировки.
Один из методов, которые мы будем использовать из класса
Arrays, — это метод
sort(), который сортирует массив в порядке возрастания. Для сортировки массива в порядке убывания используется метод
reverseOrder() класса
Collections в Java.
Как отсортировать массив в порядке возрастания в Java с помощью Arrays.sort()
Вот пример того, как мы можем использовать метод
sort() для сортировки массива в порядке возрастания.
import java.util.Arrays;
class ArraySort {
public static void main(String[] args) {
int[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr);
for (int values : arr) {
System.out.print(values + ", ");
// 1, 2, 5, 8, 10,
}
}
}
Первое, что мы сделали в приведенном выше примере, — это импортировали класс
Arrays:
import java.util.Arrays;. Так мы получили доступ ко всем методам класса
Arrays.
Затем мы создали массив с числами в случайном порядке:
int[] arr = { 5, 2, 1, 8, 10 };.
Чтобы отсортировать этот массив в порядке возрастания, мы передали массив в качестве параметра методу
sort():
Arrays.sort(arr);.
Обратите внимание, что класс
Arrays написан первым перед доступом к методу
sort() с использованием записи через точку.
Наконец, мы создали цикл и напечатали массив в консоли. В результате получился отсортированный массив:
1, 2, 5, 8, 10.
А сейчас давайте поговорим о сортировке массива по убыванию.
Как отсортировать массив по убыванию в Java с помощью Collections.reverseOrder()
Чтобы отсортировать массив в порядке убывания, следует использовать
reverseOrder(), к которому можно получить доступ из класса
Collections.
Мы по-прежнему будем использовать
Arrays.sort();, но в этом примере он будет принимать два параметра — массив для сортировки и
Collections.reverseOrder().
import java.util.Arrays;
import java.util.Collections;
class ArraySort {
public static void main(String[] args) {
Integer[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr, Collections.reverseOrder());
for (int values : arr) {
System.out.print(values + ", ");
// 10, 8, 5, 2, 1,
}
}
}
Первым делом мы импортировали классы
Arrays и
Collections, потому что мы будем использовать методы, предоставляемые этими классами.
Затем мы создали массив чисел в случайном порядке:
Integer[] arr = { 5, 2, 1, 8, 10 };. Как можно заметить, мы использовали
Integer[] вместо
int[], как в предыдущем примере. Иначе возникнет ошибка.
Чтобы отсортировать массив по убыванию, мы сделали вот так:
Arrays.sort(arr, Collections.reverseOrder());.
Первый параметр — это массив
arr, который будет отсортирован в порядке возрастания. Второй параметр —
Collections.reverseOrder() — затем изменит порядок отсортированного массива, чтобы он располагался в порядке убывания.
При циклическом просмотре и печати массив будет выглядеть так:
10, 8, 5, 2, 1.
Заключение
В этой статье мы обсудили сортировку массивов в Java — как их можно сортировать по возрастанию или по убыванию. Для этого мы можем использовать метод
sort(), к которому можно получить доступ из класса
Arrays. Метод
sort() принимает массив для сортировки в качестве параметра.
Чтобы отсортировать массив в порядке убывания, мы использовали метод
reverseOrder(), предоставляемый классом Collections. Он передается в качестве второго параметра в метод
sort(), чтобы отсортированный массив можно было переупорядочить в порядке убывания.
Java Collection. В чем разница между интерфейсами List и Set?
Источник:
Rrtutors
List и Set являются интерфейсами Java для расширения интерфейса
Collection. В этой публикации мы рассмотрим ключевые различия между ними, а также варианты их применения.
Различия между интерфейсами Set и List в Java
Давайте определим ключевые различия между интерфейсами
List и
Set на основе следующих ключевых параметров:
Реализация
List реализуют
ArrayLists, тогда как
HashSet реализуют
Set.
Индексация
Вы можете использовать
ListIterator для перемещения по
List как вперед, так и назад, но не по
Set. Вместо этого используйте Iterator (который работает как с
List, так и с
Set).
Порядок
Интерфейс
Set не поддерживает какой-либо конкретный заданный порядок. Коллекция вида
Set уже является отсортированной по своему правилу и ее просто так нельзя отсортировать.
List — это упорядоченный список. Объекты хранятся в порядке их добавления в список. Доступ к элементам списка осуществляется по индексу.
Объект Null
List не имеют никаких ограничений и поддерживают добавление нулевых значений (Null values), в то время как
Set допускает не более одного значения null.
Дубликаты
List могут содержать дубликаты, а
Set — нет. Set не допускает дублирования элементов, поскольку все его элементы должны быть уникальными. Если вы вставите повторяющийся элемент в
Set, существующее значение будет перезаписано.
Когда следует использовать List и Set?
Set — лучший выбор, когда вам просто нужно сохранить уникальные значения, поскольку он как раз для этого и предназначен. Но если вы хотите сохранить порядок вставки, несмотря на дублирование, лучше всего выбрать
List.
Пример Set
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("Rohit");
al.add("Panjab");
al.add("Kamir");
System.out.println("My ArrayList Items: ");
System.out.print(al);
List<String> ll = new LinkedList<String>();
ll.add("Shobit");
ll.add("Raul");
ll.add("Ketel");
System.out.println("\n My LinkedList Items: ");
System.out.print(ll);
}
}
Пример List
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
int myList[] = {60, 70, 80, 40 };
Set<Integer> dispSet = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
dispSet.add(myList[i]);
}
System.out.println(dispSet);
TreeSet<Integer> treeset = new TreeSet<Integer>(dispSet);
System.out.println("Sorting in Asceding order:");
System.out.println(treeset);
}
catch(Exception e){
e.printStackTrace();
}
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ