Java HashSet

Оновлено: 22.05.2023

Java HashSet

HashSet - це колекція елементів, де кожен елемент є унікальним, і знаходиться в пакеті java.util:

Створіть об'єкт HashSet з назвою cars, який буде зберігати рядки:

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

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

Додати елементи

Клас HashSet має багато корисних методів. Наприклад, для додавання елементів до нього використовується метод add():

// 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");
    cars.add("Mazda");
    System.out.println(cars);
  }
}

Примітка: У наведеному вище прикладі, незважаючи на те, що BMW додано двічі, він з'являється лише один раз у наборі, оскільки кожен елемент набору має бути унікальним.

Перевірте, чи існує елемент

Щоб перевірити, чи існує елемент у HashSet, використовуйте метод contains():

cars.contains("Mazda");

Видалити елемент

Щоб видалити елемент, використовуйте метод remove():

cars.remove("Volvo");

Щоб видалити всі елементи, використовуйте метод clear():

cars.clear();

HashSet Size

Щоб дізнатися, скільки є елементів, використовуйте метод розміру:

cars.size();

Цикл через хеш-сукупність

Перебір елементів HashSet з циклом для кожного з них:

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

Інші типи

Елементи в HashSet є фактично об'єктами. У наведених вище прикладах ми створювали елементи (об'єкти) типу "String". Пам'ятайте, що String в Java - це об'єкт (а не примітивний тип). Для використання інших типів, наприклад, int, необхідно вказати еквівалентний клас-обгортку: Integer. Для інших примітивних типів використовуйте Boolean для boolean, Character для char, Double для double тощо:

Використовуйте HashSet, який зберігає цілочисельні об'єкти:

HashSet
Integer
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.");
      }
    }
  }
}