JavaRush /Java blogi /Random-UZ /Kofe tanaffusi №136. Arrays.sort() yordamida massivni o's...

Kofe tanaffusi №136. Arrays.sort() yordamida massivni o'sish yoki kamayish tartibida tartiblang. List va Set interfeyslari o'rtasidagi farq nima?

Guruhda nashr etilgan

Arrays.sort() yordamida massivni o'sish yoki kamayish tartibida tartiblang

Manba: FreeCodeCamp Ushbu post orqali siz Java-da massivni o'sish yoki kamayish tartibida qanday saralashni o'rganasiz. Kofe tanaffusi №136.  Arrays.sort() yordamida massivni o'sish yoki kamayish tartibida tartiblang.  List va Set interfeyslari o'rtasidagi farq nima?  - 1Java-da biz o'zgaruvchilar to'plamini (bir xil ma'lumotlar turiga ega) bitta o'zgaruvchida saqlash uchun massivlardan foydalanamiz. Ammo ba'zida massivda saqlangan qiymatlar tasodifiy tartibda paydo bo'ladi. Java-dagi Arrays klassi tufayli bizda massivlarni manipulyatsiya qilishning bir necha usullari mavjud, jumladan ularni saralash. Arrays sinfidan biz foydalanadigan usullardan biri massivni o'sish tartibida saralaydigan sort() usulidir . Massivni kamayish tartibida saralash uchun Java-dagi Collections sinfining reverseOrder() usulidan foydalaning.

Arrays.sort() yordamida Java-da massivni o'sish tartibida qanday tartiblash mumkin

Massivni o'sish tartibida saralash uchun sort() usulidan qanday foydalanishimiz mumkinligiga misol keltiramiz .
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,
        }
    }
}
Yuqoridagi misolda qilgan birinchi ishimiz Arrays sinfini import qildik : import java.util.Arrays; . Bu bizga Arrays sinfining barcha usullariga kirish imkonini beradi . Keyin tasodifiy tartibda raqamlardan iborat massiv yaratdik: int[] arr = { 5, 2, 1, 8, 10 }; . Ushbu massivni o'sish tartibida saralash uchun massivni sort() usuliga parametr sifatida o'tkazdik : Arrays.sort(arr); . Esda tutingki, Arrays klassi sort() usuliga nuqta belgisi yordamida kirishdan oldin yoziladi . Nihoyat, biz tsikl yaratdik va massivni konsolga chop etdik. Natijada tartiblangan massiv hosil bo'ladi: 1, 2, 5, 8, 10 . Endi massivni kamayish tartibida tartiblash haqida gapiraylik.

Collections.reverseOrder() yordamida Java-da massivni kamayish tartibida qanday saralash mumkin

Massivni kamayish tartibida saralash uchun siz Collections sinfidan kirish mumkin bo'lgan reverseOrder() dan foydalanishingiz kerak . Biz hali ham Arrays.sort(); dan foydalanamiz . , lekin bu misolda u ikkita parametrni oladi - tartiblash uchun massiv va 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,
        }
    }
}
Biz qilgan birinchi ish massivlar va to'plamlar sinflarini import qilish edi , chunki biz ushbu sinflar tomonidan taqdim etilgan usullardan foydalanamiz. Keyin tasodifiy tartibda raqamlar qatorini yaratdik: Integer[] arr = { 5, 2, 1, 8, 10 }; . Ko'rib turganingizdek, oldingi misoldagi kabi int[] o'rniga Integer[] dan foydalandik. Aks holda xatolik yuz beradi. Massivni kamayish tartibida tartiblash uchun biz shunday qildik: Arrays.sort(arr, Collections.reverseOrder()); . Birinchi parametr massiv massiv bo'lib , o'sish tartibida tartiblanadi. Ikkinchi parametr Collections.reverseOrder() keyin tartiblangan massivning kamayish tartibida bo'lishi uchun tartibni o'zgartiradi. Ilova qilingan va chop etilganda, massiv quyidagicha ko'rinadi: 10, 8, 5, 2, 1 .

Xulosa

Ushbu maqolada biz Java-da massivlarni saralash haqida gaplashdik - ularni qanday qilib o'sish yoki kamayish tartibida tartiblash mumkin. Buning uchun sort() usulidan foydalanishimiz mumkin, unga Arrays sinfidan kirish mumkin . Sort() usuli parametr sifatida tartiblash uchun massivni oladi. Massivni kamayish tartibida saralash uchun Collections sinfi tomonidan taqdim etilgan reverseOrder() usulidan foydalandik. U ikkinchi parametr sifatida sort() usuliga uzatiladi , shunda tartiblangan massivni kamayish tartibida qayta tartiblash mumkin.

Java to'plami. List va Set interfeyslari o'rtasidagi farq nima?

Manba: Rrtutors List va Set to'plam interfeysini kengaytirish uchun Java interfeyslaridir . Ushbu postda biz ikkalasi o'rtasidagi asosiy farqlarni va ulardan qanday foydalanish mumkinligini ko'rib chiqamiz.

Java-da Set va List interfeyslari o'rtasidagi farqlar

Quyidagi asosiy parametrlar asosida List va Set interfeyslari orasidagi asosiy farqlarni aniqlaymiz :

Amalga oshirish

List ArrayLists ni , HashSet esa Set ni amalga oshiradi .

Indekslash

ListIterator dan Ro'yxat bo'ylab oldinga va orqaga harakat qilish uchun foydalanishingiz mumkin , lekin to'plam orqali emas . Buning o'rniga Iterator dan foydalaning (u List va Set bilan ishlaydi ).

Buyurtma

O'rnatish interfeysi biron bir o'rnatilgan tartibni qo'llab-quvvatlamaydi. Set tipidagi to'plam allaqachon o'z qoidasiga ko'ra tartiblangan va uni xuddi shunday saralab bo'lmaydi. Ro'yxat - tartiblangan ro'yxat. Ob'ektlar ro'yxatga qo'shilgan tartibda saqlanadi. Ro'yxat elementlariga indeks orqali kirish mumkin.

Null ob'ekt

Ro'yxatda hech qanday cheklovlar yo'q va Null qiymatlarni qo'shishni qo'llab-quvvatlaydi, Set esa ko'pi bilan bitta null qiymatga ruxsat beradi.

Dublikatlar

Roʻyxat dublikatlarni oʻz ichiga olishi mumkin, lekin “Set” boʻlishi mumkin emas. Toʻplam ikki nusxadagi elementlarga ruxsat bermaydi, chunki uning barcha elementlari noyob boʻlishi kerak. Agar siz Set ga takroriy element qo'shsangiz , mavjud qiymat ustiga yoziladi.

List va Set dan qachon foydalanish kerak?

Noyob qiymatlarni saqlash kerak bo'lganda to'plam eng yaxshi tanlovdir, chunki u aynan shu maqsadda yaratilgan. Ammo agar siz takrorlanishga qaramay qo'shish tartibini saqlab qolmoqchi bo'lsangiz, Ro'yxat eng yaxshi tanlovdir .

Misol to'plami

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

            }

}

Misol ro'yxati

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

                            }

            }

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