Java HashSet


ULASHISH

Java HashSet

HashSet — har bir elementi noyob bo‘lgan elementlar kolleksiyasi.

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


HashSet yaratish

Misol

Stringlarni saqlaydigan cars nomli HashSet obyektini yarating:

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

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

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


Element qo‘shish

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

Misol

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

public class Main {
  public static void main(String[] args) {
    HashSet<String> cars = new HashSet<String>();
    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 »

Eslatma: Yuqoridagi misolda "BMW" ikki marta qo‘shilgan bo‘lsa-da, u Set’da faqat bir marta uchraydi, chunki Setlar takroriy elementlarga ruxsat bermaydi.


Element mavjudligini tekshirish

HashSet’da element mavjudligini 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 uchun clear() metodidan foydalaning:

Misol

cars.clear();

O‘zingiz sinab ko‘ring »



HashSet 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.


HashSet bo‘ylab sikl

HashSet elementlarini for-each sikli yordamida aylanib chiqing:

Misol

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

O‘zingiz sinab ko‘ring »


Boshqa tiplar

HashSet elementlari aslida obyektlardir. Yuqoridagi misollarda "String" tipidagi elementlar (obyektlar) yaratdik. Esda tuting, Java tilida String obyekt hisoblanadi (primitiv tip emas). int kabi boshqa tiplardan foydalanish uchun unga mos o‘rovchi sinfni (wrapper class) ko‘rsatishingiz kerak: Integer. Boshqa primitiv tiplar uchun quyidagilardan foydalaning: boolean uchun Boolean, char uchun Character, double uchun Double va h.k.:

Misol

Integer obyektlarini saqlaydigan HashSet’dan foydalaning:

import java.util.HashSet;

public class Main {
  public static void main(String[] args) {

    // Create a HashSet object called numbers
    HashSet<Integer> numbers = new HashSet<Integer>();

    // Add values to the set
    numbers.add(4);
    numbers.add(7);
    numbers.add(8);

    // Show which numbers between 1 and 10 are in the set
    for (int i = 1; i <= 10; i++) {
      if (numbers.contains(i)) {
        System.out.println(i + " was found in the set.");
      } else {
        System.out.println(i + " was not found in the set.");
      }
    }
  }
}

O‘zingiz sinab ko‘ring »


var kalit so‘zi

Java 10 dan boshlab tipni ikki marta yozmasdan HashSet 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
HashSet<String> cars = new HashSet<String>();

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

O‘zingiz sinab ko‘ring »


Set interfeysi

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

import java.util.Set;
import java.util.HashSet;

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

O‘zingiz sinab ko‘ring »

Bu shuni anglatadiki, o‘zgaruvchi (cars) Set (interfeys) sifatida e’lon qilingan, lekin u HashSet obyektini (aslida ishlatiladigan Set’ni) saqlaydi. HashSet 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.


Tartib muhim bo‘lganda

Keyingi bobda siz TreeSet haqida bilib olasiz — u noyob elementlarni saralangan tartibda saqlaydi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!