Java LinkedHashSet


ULASHISH

Java LinkedHashSet

LinkedHashSet — noyob elementlarni saqlaydigan va ularning qo‘shilish tartibini eslab qoladigan kolleksiya.

U java.util paketiga kiradi va Set interfeysini amalga oshiradi.

Maslahat: Takroriy elementlarga ruxsat bermaydigan va dastlabki qo‘shilish tartibini saqlaydigan to‘plam kerak bo‘lsa, LinkedHashSet sinfidan foydalaning.


LinkedHashSet yaratish

Misol

Stringlarni saqlaydigan cars nomli LinkedHashSet obyektini yarating:

import java.util.LinkedHashSet; // Import the LinkedHashSet class

LinkedHashSet<String> cars = new LinkedHashSet<>();

Endi kolleksiyangizni boshqarish uchun add(), contains() va remove() kabi metodlardan foydalanishingiz mumkin.


Element qo‘shish

LinkedHashSet’ga element qo‘shish uchun add() metodidan foydalaning:

Misol

import java.util.LinkedHashSet;

public class Main {
  public static void main(String[] args) {
    LinkedHashSet<String> cars = new LinkedHashSet<>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("BMW");  // Duplicate
    cars.add("Mazda");

    System.out.println(cars);
  }
}

O‘zingiz sinab ko‘ring »

Natija: Elementlar qo‘shilgan tartibda chiqadi (masalan, [Volvo, BMW, Ford, Mazda]).

Eslatma: "BMW" kabi takroriy elementlar e’tiborga olinmaydi.



Element mavjudligini tekshirish

Element bor-yo‘qligini tekshirish uchun contains() metodidan foydalaning:

Misol

cars.contains("Mazda");

O‘zingiz sinab ko‘ring »


Elementni o‘chirish

Elementni o‘chirish uchun remove() metodidan foydalaning:

Misol

cars.remove("Volvo");

O‘zingiz sinab ko‘ring »


Barcha elementlarni o‘chirish

Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:

Misol

cars.clear();

O‘zingiz sinab ko‘ring »


LinkedHashSet o‘lchami

Set’da nechta noyob element borligini sanash uchun size()’dan foydalaning:

Misol

cars.size();

O‘zingiz sinab ko‘ring »

Eslatma: Takroriy qiymatlar sanalmaydi — o‘lchamga faqat noyob elementlar kiradi.


LinkedHashSet bo‘ylab sikl

LinkedHashSet elementlarini for-each sikli yordamida aylanib chiqing:

Misol

LinkedHashSet<String> cars = new LinkedHashSet<>();
// Add elements...

for (String car : cars) {
  System.out.println(car);
}

O‘zingiz sinab ko‘ring »


HashSet va LinkedHashSet

Xususiyat HashSet LinkedHashSet
Tartib Tartib kafolatlanmaydi Qo‘shilish tartibi saqlanadi
Takroriy elementlar Ruxsat etilmaydi Ruxsat etilmaydi
Unumdorlik Tezroq Biroz sekinroq (tartibni kuzatib borish tufayli)

Maslahat: Sizni faqat noyoblik va tezlik qiziqtirsa, HashSet sinfidan foydalaning. Tartib muhim bo‘lsa, LinkedHashSet sinfidan foydalaning.


var kalit so‘zi

Java 10 dan boshlab tipni ikki marta yozmasdan LinkedHashSet o‘zgaruvchisini e’lon qilish uchun var kalit so‘zidan foydalanishingiz mumkin. Kompilyator tipni siz beradigan qiymatdan aniqlaydi.

Bu kodni qisqartiradi, ammo ko‘plab dasturchilar aniqlik uchun baribir to‘liq tipdan foydalanadi. var Java tilida to‘g‘ri sintaksis bo‘lgani uchun uni boshqa kodlarda uchratishingiz mumkin, shuning uchun uning mavjudligini bilib qo‘ygan ma’qul:

Misol

// Without var
LinkedHashSet<String> cars = new LinkedHashSet<String>();

// With var
var cars = new LinkedHashSet<String>();

O‘zingiz sinab ko‘ring »


Set interfeysi

Eslatma: Ba’zan Java kodida Set va LinkedHashSet’ni birga ko‘rasiz, masalan:

import java.util.Set;
import java.util.LinkedHashSet;

Set<String> cars = new LinkedHashSet<>();

O‘zingiz sinab ko‘ring »

Bu shuni anglatadiki, o‘zgaruvchi (cars) Set (interfeys) sifatida e’lon qilingan, lekin u LinkedHashSet obyektini (aslida ishlatiladigan Set’ni) saqlaydi. LinkedHashSet sinfi Set interfeysini amalga oshirgani (implements) uchun bunday qilish mumkin.

U xuddi shunday ishlaydi, ammo ba’zi dasturchilar bu uslubni afzal ko‘radi, chunki u keyinchalik tipni o‘zgartirish uchun ko‘proq moslashuvchanlik beradi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!