JavaRush /Blog Java /Random-PL /Przerwa kawowa #136. Sortuj tablicę w kolejności rosnącej...

Przerwa kawowa #136. Sortuj tablicę w kolejności rosnącej lub malejącej za pomocą metody Arrays.sort(). Jaka jest różnica między interfejsami List i Set?

Opublikowano w grupie Random-PL

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. Przerwa kawowa #136.  Sortuj tablicę w kolejności rosnącej lub malejącej za pomocą metody Arrays.sort().  Jaka jest różnica między interfejsami List i Set?  - 1W 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 + ", ");
            // 1, 2, 5, 8, 10,
        }
    }
}
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 + ", ");
            // 10, 8, 5, 2, 1,
        }
    }
}
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();

                            }

            }

}
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION