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.
Java-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 + ", ");
}
}
}
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 + ", ");
}
}
}
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();
}
}
}
GO TO FULL VERSION