- •Лабораторна робота №5 (Java. Типи даних.)
- •План роботи
- •Теоретичні відомості
- •Більш складні типи даних – масиви.
- •Оператори керування кодом програми. Оператори if, if-else.
- •Оператори switch.
- •Порядок виконання роботи
- •Інтерфейси колекцій
- •Інтерфейс Collection.
- •Інтерфейс List.
- •Інтерфейс Set.
- •Класи колекцій
- •Клас ArrayList.
- •Клас HashSet.
- •Клас TreeSet.
- •Колекції класів, визначених програмістом.
- •Порядок виконання роботи
- •Контрольні питання
- •Завдання властивостей компонентів.
- •Обробка подій.
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №8 (Пакет Swing – компонувальники (LayoutManager))
- •План роботи
- •Теоретичні відомості
- •Компоновульник FlowLayout.
- •Компонувальник BorderLayout
- •Компонувальник CardLayout.
- •Компонувальник BoxLayout.
- •Компонувальник GridLayout
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №9 (Створення простого текстового редактора.)
- •План роботи
- •Теоретичні відомості
- •Порядок виконання роботи.
- •Контрольні питання
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №11 (Основні компоненти j2me)
- •Теоретичні відомості
- •Компоненти графічного інтерфейсу користувача midp. (пакет javax.Microedition.Lcdui)
- •Програмна структура mid-лета.
- •Завдання
- •Контрольні питання
- •Список рекомендованої літератури
- •Ресурси
Клас 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 визначає, чи такий об’єкт уже існує в наборі.
