Sortuj tablicę w kolejności rosnącej lub malejącej za pomocą Arrays.sort()
Źródło:
FreeCodeCamp W tym poście dowiesz się, jak sortować tablicę w kolejności rosnącej lub malejącej w Javie.
W Javie używamy tablic do przechowywania zestawu zmiennych (o tym samym typie danych) w jednej zmiennej. Ale czasami wartości przechowywane w tablicy pojawiają się w losowej kolejności. Dzięki klasie
Arrays w Javie mamy kilka sposobów manipulowania tablicami, w tym ich sortowania. Jedną z metod, którą wykorzystamy z klasy
Arrays , jest metoda
sort() , która sortuje tablicę w kolejności rosnącej. Aby posortować tablicę w kolejności malejącej, użyj metody
ReverseOrder() klasy
Collections w Javie.
Jak posortować tablicę w kolejności rosnącej w Javie za pomocą Arrays.sort()
Oto przykład użycia metody
sort() do sortowania tablicy w porządku rosnącym.
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 + ", ");
}
}
}
Pierwszą rzeczą, którą zrobiliśmy w powyższym przykładzie, był import klasy
Arrays :
import java.util.Arrays; . Daje nam to dostęp do wszystkich metod klasy
Arrays . Następnie utworzyliśmy tablicę z liczbami w losowej kolejności:
int[] arr = { 5, 2, 1, 8, 10 }; . Aby posortować tę tablicę w kolejności rosnącej, przekazaliśmy ją jako parametr do metody
sort() :
Arrays.sort(arr); . Należy pamiętać, że klasa
Arrays jest zapisywana jako pierwsza przed uzyskaniem dostępu do metody
sort() przy użyciu notacji kropkowej. Na koniec utworzyliśmy pętlę i wydrukowaliśmy tablicę na konsoli. Wynikiem jest posortowana tablica:
1, 2, 5, 8, 10 . Porozmawiajmy teraz o sortowaniu tablicy w kolejności malejącej.
Jak posortować tablicę w kolejności malejącej w Javie za pomocą Collections.reverseOrder()
Aby posortować tablicę w kolejności malejącej, należy użyć metody
ReverseOrder() , do której można uzyskać dostęp z klasy
Collections . Nadal będziemy używać
Arrays.sort(); , ale w tym przykładzie będą potrzebne dwa parametry - tablica do sortowania i
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 + ", ");
}
}
}
Pierwszą rzeczą, którą zrobiliśmy, było zaimportowanie klas
Arrays i
Collections , ponieważ będziemy korzystać z metod udostępnianych przez te klasy. Następnie utworzyliśmy tablicę liczb w losowej kolejności:
Integer[] arr = { 5, 2, 1, 8, 10 }; . Jak widać, użyliśmy
Integer[] zamiast
int[] , jak w poprzednim przykładzie. W przeciwnym razie wystąpi błąd. Aby posortować tablicę w kolejności malejącej, zrobiliśmy to:
Arrays.sort(arr, Collections.reverseOrder()); . Pierwszym parametrem jest tablica arr,
która będzie posortowana rosnąco. Drugi parametr,
Collections.reverseOrder() , odwróci następnie kolejność posortowanej tablicy, tak aby była ona uporządkowana malejąco. Po zapętleniu i wydrukowaniu tablica będzie wyglądać następująco:
10, 8, 5, 2, 1 .
Wniosek
W tym artykule omawialiśmy sortowanie tablic w Javie – w jaki sposób można je sortować w kolejności rosnącej lub malejącej. Możemy w tym celu skorzystać z metody
sort() , do której dostęp można uzyskać z klasy
Arrays . Metoda
sort() jako parametr przyjmuje tablicę do sortowania. Aby posortować tablicę w kolejności malejącej, wykorzystaliśmy metodę
ReverseOrder() udostępnioną przez klasę Collections. Jest przekazywany jako drugi parametr do metody
sort() , dzięki czemu można uporządkować posortowaną tablicę w kolejności malejącej.
Kolekcja Java. Jaka jest różnica między interfejsami List i Set?
Źródło:
Rrtutors List i Set to interfejsy Java rozszerzające interfejs
kolekcji . W tym poście przyjrzymy się kluczowym różnicom między nimi, a także sposobom ich wykorzystania.
Różnice między interfejsami Set i List w Javie
Zdefiniujmy kluczowe różnice między interfejsami
List i
Set w oparciu o następujące kluczowe parametry:
Realizacja
List implementuje
ArrayLists , podczas gdy
HashSet implementuje
Set .
Indeksowanie
Możesz użyć
ListIterator do poruszania się do przodu i do tyłu po
liście , ale nie po zbiorze . Zamiast tego użyj Iteratora (który działa zarówno z
List , jak i
Set ).
Zamówienie
Interfejs
Set nie obsługuje żadnej konkretnej kolejności zestawów. Kolekcja typu
Set jest już posortowana według własnej reguły i nie można jej tak posortować.
Lista jest listą uporządkowaną. Obiekty przechowywane są w kolejności, w jakiej zostały dodane do listy. Dostęp do elementów listy uzyskuje się poprzez indeks.
Obiekt zerowy
Lista nie ma żadnych ograniczeń i obsługuje dodawanie wartości Null, podczas gdy
Set pozwala na maksymalnie jedną wartość null.
Duplikaty
Lista może zawierać duplikaty, ale
zestaw nie. Zestaw nie pozwala na powielanie elementów, ponieważ wszystkie jego elementy muszą być unikalne. Jeśli wstawisz zduplikowany element do
Set , istniejąca wartość zostanie nadpisana.
Kiedy należy używać List i Set?
Zestaw to najlepszy wybór, gdy potrzebujesz tylko przechowywać unikalne wartości, ponieważ do tego został zaprojektowany. Jeśli jednak chcesz zachować kolejność wstawiania pomimo powielania, najlepszym wyborem będzie
Lista .
Przykładowy zestaw
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);
}
}
Przykładowa lista
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();
}
}
}
GO TO FULL VERSION