Set ham to’plam (collection) u ham o’zida takror(dublicate) bo’lmagan( takror(dublicate)dan faqat bittasini saqlaydi) ma’lumotlarni saqlaydi. Set interfeys(interface) bo’lib undan TreeSet, HashSet, LinkedHashSet, Abstract klasslari Set’dan implement oladi. Ular bilan tanishib chiqsak.
HashSet
HashSet ning iyerarxiyasi
HashSet Set’dan implement oladi. U o’zida null qiymatni saqlashga ruxsat beradi. Bu klass sinxron emas.
1. Hashset ma’lumotlarni tasodifiy tartibda qaytaradi
2. HashSet takror (dublicate) ma’lumotlarni o’zida saqlamaydi
3. HashSet null qiymatlarni ham saqlashi mumkin, lekin faqat bitta null qiymatni qaytaradi.
4. HashSet sinxron emas
HashSetga misol:
- import java.util.HashSet;
-
- public class HashSetExample {
-
-
- // HashSet declaration
-
- HashSet<String> hset = new HashSet<String>(); // Adding elements to the HashSet hset.add("Apple");
-
- hset.add("Mango");
-
- hset.add("Grapes");
-
- hset.add("Orange");
-
- hset.add("Fig"); //Addition of duplicate elements
-
- hset.add("Apple");
-
- hset.add("Mango"); //Addition of null values
-
- hset.add(null);
-
- hset.add(null); //Displaying HashSet elements
-
-
- }
-
- }
Ekranda:
[null, Mango, Grapes, Apple, Orange, Fig]
Ko’rib turganingizdek ekranda bitta null qiymat va barcha takror elementlardan faqat bittasini o’zida saqlayapti.
HashSet’da ishlovchi ba’zi bir funksiyalar bilan tanishib chiqsak
Hamma elementlarni o’chirib tashlashga doir misol:
- import java.util.HashSet;
-
- class EmptyHashSetExample{
-
-
- HashSet<String> hset = new HashSet<String>(); //add elements to HashSet
-
- hset.add("Element1");
-
- hset.add("Element2");
-
- hset.add("Element3");
-
- hset.add("Element4");
-
- hset.add("Element5");
-
-
- hset.clear(); // Display HashSet content again
-
- }
- }
Ekranda:
Oldin: HashSet contains: [Element1, Element2, Element3, Element4, Element5]
Keyin: HashSet contains: []
HashSet ni massivga o’girish (convert) ga misol:
- import java.util.HashSet;
-
- class ConvertHashSettoArray{
-
-
- // Create a HashSet
-
- HashSet<String> hset = new HashSet<String>(); //add elements to HashSet
-
- hset.add("Element1");
-
- hset.add("Element2");
-
- hset.add("Element3");
-
- hset.add("Element4"); // Displaying HashSet elements
-
-
-
- }
- }
- }
Ekranda:
HashSet contains: [Element1, Element2, Element3, Element4]
Array elements:
Element1
Element2
Element3
Element4
Hashset’ni ArrayList’ga o’girish(convert) :
- import java.util.HashSet;import java.util.List;import java.util.ArrayList;
-
- class ConvertHashSetToArrayList{
-
-
- HashSet<String> hset = new HashSet<String>(); //add elements to HashSet
-
- hset.add("Steve");
-
- hset.add("Matt");
-
- hset.add("Govinda");
-
- hset.add("John");
-
- hset.add("Tommy"); // Displaying HashSet elements
-
-
- List<String> list = new ArrayList<String>(hset); // Displaying ArrayList elements System.out.println("ArrayList contains: "+ list); }}
Ekranda
HashSet contains: [Tommy, Matt, Steve, Govinda, John]ArrayList
contains: [Tommy, Matt, Steve, Govinda, John]
TreeSet
TreeSet ham deyarli HashSetga o’xshab ketadi. Ba’zi bir hususiyatlari bilan ular bir biridan farq qiladi. Ya’ni TreeSet elemetlarni saralab qaytaradi HashSet esa saralamay, TreeSet null qiymatni saqlamaydi HashSet esa saqlaydi. TreeSet sinxron emas.
TreeSet<String> tset = new TreeSet<String>();//treeSet ni e’lon qilinish
TreeSet ga misol:
- import java.util.TreeSet;
-
- public class TreeSetExample {
-
-
- TreeSet<String> tset = new TreeSet<String>(); // Adding elements to TreeSet<String> tset.add("ABC");
-
- tset.add("String");
-
- tset.add("Test");
-
- tset.add("Pen");
-
- tset.add("Ink");
-
- tset.add("Jack"); //Displaying TreeSet
-
-
- TreeSet<Integer> tset2 = new TreeSet<Integer>(); // Adding elements to TreeSet<Integer> tset2.add(88);
-
- tset2.add(7);
-
- tset2.add(101);
-
- tset2.add(0);
-
- tset2.add(3);
-
- tset2.add(222);
Ekranda:
[ABC, Ink, Jack, Pen, String, Test]
[0, 3, 7, 88, 101, 222]
Hashset va TreeSet orasidagi ba’zi bir faqlar
Hashset va TreeSet orasidagi ba’zi bir faqlar
1. Hashset da remove, add contains, size lar TreeSet ga nisbatan ancha tezroq bajariladi. Hashset da bu jarayonlarni bajarilishi vaqti hashsetni bajarilish vaqtiga teng Treeset da esa vaqt log(n) ga teng.
2. HashSet elementlarni tartib bilan saqalamaydi Treeset esa elementarni saralab sqalaydi.
O’xshashliklari
1. HashSet ham Treeset ham takror ma’lumotlarni saqlamaydi
2. Agar siz Setni elementlarini saralashni hohlasangiz Hashsetni Treesetga convert qilishingiz kerak.
3. Ikkala klass ham sinxron emas
LinkedHashSet
Yuqoridagi ma’ruzalarimizda HashSet va TreeSet lar bilan tanishib o’tdik. LinkedHashSet ham Set’dan implement oladi va HashSet va TreeSet larga juda o’xshab ketadi.
1. HashSet elementlari kiritilish tartibi bilan saqlamaydi
2. TreeSort esa elementlari saralab saqlaydi
3. LinkedHashSet esa elementlarni kiritilish tartibi bilan saqlaydi
- import java.util.LinkedHashSet;
-
- public class LinkedHashSetExample {
-
-
- // LinkedHashSet of String Type
-
- LinkedHashSet<String> lhset = new LinkedHashSet<String>(); // Adding elements to the LinkedHashSet lhset.add("Z");
-
- lhset.add("PQ");
-
- lhset.add("N");
-
- lhset.add("O");
-
- lhset.add("KK");
-
- lhset.add("FGH");
-
-
- LinkedHashSet<Integer> lhset2 = new LinkedHashSet<Integer>(); // Adding elements lhset2.add(99);
-
- lhset2.add(7);
-
- lhset2.add(0);
-
- lhset2.add(67);
-
- lhset2.add(89);
-
- lhset2.add(66);
-
Ekaranda:
[Z, PQ, N, O, KK, FGH]
[99, 7, 0, 67, 89, 66]
Ko’rib turganingizdek elementlarni saqlash tartibida qaytaryapti(ekranga chiqaryapti).
G'ayratjon Rayimjonovning so'nngi maqolalari (hammasini ko'rish)
- Javada Stringlar - 14/06/2017
- Javada Map - 21/03/2017
- Javada Set - 26/12/2016