Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zbirnuk_lab_po_kursy_intTexTaSybd.doc
Скачиваний:
8
Добавлен:
08.12.2018
Размер:
754.18 Кб
Скачать

Клас HashSet.

Цей клас реалізує інтерфейс Set. Він створює колекцію, котра використовує хеш-таблицю для збереження колекції. Перевага використання такої таблиці в тому, що для великих масивів зберігається постійним час виконання основних операцій, таких, як add(), remove(), size().

Важливо відмітити, що такий клас не гарантує впорядковування елементів.

Приклад 2.

import java.util.HashSet;

public class Lab2

{

public static void main(String[] args)

{

//створюємо динамічний масив

HashSet hs = new HashSet();

//додаємо елементи в масив

hs.add("C");

hs.add("A");

hs.add("B");

hs.add("D");

hs.add("C");

hs.add("F");

//показати на екрані список масиву

System.out.println("hs consists of : "+hs);

}

}

Клас TreeSet.

Цей клас теж реалізує інтерфейс Set, але на відміну від класу HasSet, об’єкти в ньому зберігаються в відсортованому вигляді.

Приклад 3.

import java.util.TreeSet;

public class Lab2

{

public static void main(String[] args)

{

//створюємо динамічний масив

TreeSet ts = new TreeSet();

//додаємо елементи в масив

ts.add("C");

ts.add("A");

ts.add("B");

ts.add("D");

ts.add("C");

ts.add("F");

//показати на екрані список масиву

System.out.println("ts consists of : "+ts);

}

}

Колекції класів, визначених програмістом.

Для простоти в попередніх прикладах ми зберігали у колекціях вбудовані об’єкти типу String. Однак, колекції не обмежуються збереженням простих типів. Потужність колекцій якраз в тому і полягає, щоб зберігати будь-який тип об’єкта, в тому числі і створеного вами.

Приклад 4.

import java.util.*;

public class Lab2

{

public static void main(String[] args)

{ //створюємо динамічний масив

HashSet hs = new HashSet();

//додаємо елементи в масив

hs.add(new Address("Antoniv", "23/16 Naukova Str., Lviv"));

hs.add(new Address("Kozak", "12 Konovaltsa Str., Lviv"));

hs.add(new Address("Hrabovskyy", "21 Shevchenka Str., Lviv"));

hs.add(new Address("Hrabovskyy", "21 Chereshneva Str., Lviv"));

//показати на екрані список масиву

Iterator iterator = hs.iterator();

while(iterator.hasNext())

{

System.out.println(iterator.next()+"\n");

}

}

static class Address

{

private String name;

private String address;

public Address(String name, String address)

{

this.name = name;

this.address = address;

}

public int hashCode()

{

return name.hashCode();

}

public String toString()

{

return name+"\n"+address;

}

}

}

Зверніть увагу, що в визначеному нами класі Address задається метод hashCode(), котрий повертає тип int. Цей метод повинен повертати унікальне значення для кожного об’єкту. При цьому, якщо значення hashCode() співпадають, то об’єкти вважаються однаковими. Саме звертаючись до цього методу клас HashSet визначає, чи такий об’єкт уже існує в наборі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]