Сортування масиву в порядку зростання або зменшення за допомогою 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 + ", ");
}
}
}
Перше, що ми зробабо в наведеному вище прикладі, це імпортували клас
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 + ", ");
}
}
}
Насамперед ми імпортували класи
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();
}
}
}
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ