JavaRush /Java блогу /Random-KY /Кофе-брейк №136. Arrays.sort() аркылуу массивди өсүү же к...

Кофе-брейк №136. Arrays.sort() аркылуу массивди өсүү же кемүү тартибинде иреттеңиз. Тизме жана Set интерфейстеринин ортосунда кандай айырма бар?

Группада жарыяланган

Arrays.sort() аркылуу массивди өсүү же кемүү тартибинде иреттөө

Булак: FreeCodeCamp Бул пост менен сиз Java тorнде массивди өсүү же кемүү тартибинде кантип иреттөө керектигин үйрөнөсүз. Кофе-брейк №136.  Arrays.sort() аркылуу массивди өсүү же кемүү тартибинде иреттеңиз.  Тизме жана Set интерфейстеринин ортосунда кандай айырма бар?  - 1Java тorнде биз бир өзгөрмөдө өзгөрмөлөрдүн топтомун (бир эле маалымат түрү менен) сактоо үчүн массивдерди колдонобуз. Бирок кээде массивде сакталган баалуулуктар туш келди тартипте пайда болот. Javaдагы Arrays классынын аркасында бизде массивдерди башкаруунун бир нече жолдору бар, анын ичинде аларды сорттоо. Arrays классынан колдоно турган ыкмалардын бири массивди өсүү тартибинде сорттоочу sort () ыкмасы. Массивди кемүү тартибинде сорттоо үчүн Java'дагы Collections классынын reverseOrder() ыкмасын колдонуңуз.

Arrays.sort() аркылуу Java'да массивди өсүү тартибинде кантип сорттоого болот

Бул жерде массивди өсүү тартибинде сорттоо үчүн 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'да массивди кемүү тартибинде кантип сорттоого болот

Массивди кемүү тартибинде иреттөө үчүн, Collections классынан кирүүгө мүмкүн болгон 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'да массивдерди сорттоо жөнүндө талкууладык - аларды кантип өсүү же кемүү тартибинде сорттоого болот. Бул үчүн, Arrays классынан кирүүгө мүмкүн болгон sort() ыкмасын колдонсок болот . Sort() методу параметр катары сорттоо үчүн массивди алат. Массивди кемүү тартибинде иреттөө үчүн Collections классы тарабынан берилген reverseOrder() ыкмасын колдондук. Ал экинчи параметр катары sort() ыкмасына өткөрүлөт , андыктан сорттолгон массив азуу тартибинде иреттелиши мүмкүн.

Java Collection. Тизме жана Set интерфейстеринин ортосунда кандай айырма бар?

Булак: Rrtutors List жана Set - бул Коллекция интерфейсин кеңейтүү үчүн Java интерфейстери . Бул постто биз экөөнүн ортосундагы негизги айырмачылыктарды, ошондой эле аларды кантип колдонсо болорун карап чыгабыз.

Javaдагы Set жана List интерфейстеринин ортосундагы айырмачылыктар

Төмөнкү негизги параметрлердин негизинде List жана Set интерфейстеринин ортосундагы негизги айырмачылыктарды аныктайлы :

Ишке ашыруу

List ArrayListsти ишке ашырат , ал эми HashSet Setти ишке ашырат .

Индекстөө

Сиз ListIterator аркылуу List аркылуу алдыга жана артка жыла аласыз , бирок Set аркылуу эмес . Анын ордуна Итераторду колдонуңуз (ал List жана Set менен иштейт ).

Заказ

Set интерфейси кандайдыр бир белгиленген тартипти колдобойт. Set тибиндеги коллекция мурунтан эле өз эрежеси боюнча иреттелген жана аны ушунча иреттөө мүмкүн эмес. Тизме - иреттелген тизме. Объекттер тизмеге кошулган тартипте сакталат. Тизме элементтерине индекс аркылуу кирүүгө болот.

Нөл an object

Тизме эч кандай чектөөлөргө ээ эмес жана Null маанилерин кошууну колдойт, ал эми 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