JavaRush /Блоги Java /Random-TG /Кофе-брейк №136. Бо истифода аз Arrays.sort() массивро бо...

Кофе-брейк №136. Бо истифода аз Arrays.sort() массивро бо тартиби афзоиш ё кам ҷудо кунед. Фарқи байни интерфейсҳои Рӯйхат ва Set чӣ гуна аст?

Дар гурӯҳ нашр шудааст

Бо истифода аз Arrays.sort() массивро бо тартиби афзоиш ё кам ҷудо кунед

Сарчашма: FreeCodeCamp Бо ин паём, шумо мефаҳмед, ки чӣ гуна массивро дар Java бо тартиби болоравӣ ё коҳиш ҷудо кардан мумкин аст. Кофе-брейк №136.  Бо истифода аз Arrays.sort() массивро бо тартиби афзоиш ё кам ҷудо кунед.  Фарқи байни интерфейсҳои Рӯйхат ва Set чӣ гуна аст?  - 1Дар Java, мо массивҳоро барои нигоҳ доштани маҷмӯи тағирёбандаҳо (бо як навъи маълумот) дар як тағирёбанда истифода мебарем. Аммо баъзан арзишҳои дар массив нигоҳ дошташуда бо тартиби тасодуфӣ пайдо мешаванд. Бо шарофати синфи Arrays дар Java, мо якчанд роҳҳои коркарди массивҳоро дорем, аз ҷумла ҷудокунии онҳо. Яке аз усулҳое, ки мо аз синфи Arrays истифода хоҳем кард, усули sort() мебошад , ки массивро бо тартиби афзоиш ба навъҳо ҷудо мекунад. Барои ҷудо кардани массив бо тартиби камшавӣ, усули reverseOrder()- и синфи Коллексияҳоро дар 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 . Акнун биёед дар бораи ба тартиб даровардани массив аз рӯи тартиби кам гап мезанем.

Бо истифода аз Collections.reverseOrder() массивро чӣ гуна бо тартиби камшавӣ дар Java ҷудо кардан мумкин аст

Барои ҷудо кардани массив бо тартиби камшавӣ, шумо бояд reverseOrder() -ро истифода баред , ки онро аз синфи Коллексияҳо дастрас кардан мумкин аст . Мо ҳоло ҳам 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,
        }
    }
}
Аввалин коре, ки мо кардем, ворид кардани синфҳои Массивҳо ва Коллексияҳо буд , зеро мо усулҳои пешниҳодкардаи ин синфҳоро истифода хоҳем кард. Пас аз он мо массиви ададҳоро бо тартиби тасодуфӣ сохтем: Integer[] arr = { 5, 2, 1, 8, 10 }; . Тавре ки шумо мебинед, мо мисли мисоли қаблӣ ба ҷои int [] Integer [] -ро истифода мебарем. Дар акси ҳол, хатогӣ рӯй медиҳад. Барои ба тартиб даровардани массив бо тартиби камшавӣ, мо ин корро кардем: Arrays.sort(arr, Collections.reverseOrder()); . Параметри аввал массиви arr мебошад , ки бо тартиби афзоиш мураттаб карда мешавад. Параметри дуюм, Collections.reverseOrder() , пас тартиби массиви мураттабшударо баръакс мекунад, то он дар тартиби камшавӣ бошад. Ҳангоми давр задан ва чоп кардан, массив чунин хоҳад буд: 10, 8, 5, 2, 1 .

Хулоса

Дар ин мақола, мо дар бораи ҷудо кардани массивҳо дар Java муҳокима кардем - чӣ гуна онҳоро бо тартиби афзоиш ё кам ҷудо кардан мумкин аст. Барои ин, мо метавонем усули sort() -ро истифода барем , ки онро аз синфи Arrays дастрас кардан мумкин аст . Усули sort() массивро ҳамчун параметр ҷудо мекунад. Барои ҷудо кардани массив аз рӯи тартиби камшавӣ, мо усули reverseOrder()- ро истифода бурдем , ки синфи Коллексияҳо пешниҳод кардааст. Он ҳамчун параметри дуюм ба усули sort() интиқол дода мешавад , то массиви мураттабшуда бо тартиби камшавӣ дубора тартиб дода шавад.

Маҷмӯаи Java. Фарқи байни интерфейсҳои Рӯйхат ва Set чӣ гуна аст?

Сарчашма: Рӯйхати Rrtutors ва Set интерфейсҳои Java барои васеъ кардани интерфейси Коллексия мебошанд . Дар ин мақола мо фарқиятҳои калидии байни ин ду ва инчунин чӣ гуна истифода бурдани онҳоро дида мебароем.

Тафовут байни интерфейсҳои Set ва List дар Java

Биёед фарқиятҳои калидии интерфейсҳои Рӯйхат ва Setро дар асоси параметрҳои асосии зерин муайян кунем:

Амалй

Рӯйхат ArrayLists -ро амалӣ мекунад , дар ҳоле ки HashSet Set -ро амалӣ мекунад .

Индексизатсия

Шумо метавонед ListIterator -ро истифода баред , то тавассути Рӯйхат ҳам ба пеш ва ҳам ба ақиб ҳаракат кунед, аммо на тавассути Set . Ба ҷои он Iterator-ро истифода баред (ки бо ҳам List ва ҳам Set кор мекунад ).

Тартиб

Интерфейси Set ягон фармоиши муқарраршударо дастгирӣ намекунад. Маҷмӯаи навъи Set аллакай мувофиқи қоидаи худ мураттаб карда шудааст ва ба ин монанд ҷудо карда намешавад. Рӯйхат рӯйхати тартибдодашуда аст. Объектҳо бо тартиби ба рӯйхат иловашуда нигоҳ дошта мешаванд. Унсурҳои рӯйхат тавассути индекс дастрас карда мешаванд.

Объекти нул

Рӯйхат ҳеҷ гуна маҳдудият надорад ва илова кардани арзишҳои нулро дастгирӣ мекунад, дар ҳоле ки Set ҳадди аксар як арзиши нулро иҷозат медиҳад.

Дубликатҳо

Рӯйхат метавонад такрорҳоро дар бар гирад, аммо Set наметавонад. Маҷмӯа ба унсурҳои такрорӣ иҷозат намедиҳад, зеро ҳамаи унсурҳои он бояд беназир бошанд. Агар шумо як унсури такрориро ба 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);

            }

}

Рӯйхати мисол

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();

                            }

            }

}
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION