В този урок ще научим за интерфейса Set в Java и неговите методи.
В Set
интерфейса на Java Collections
рамка осигурява характеристиките на математически набор от Java. Той разширява Collection
интерфейса.
За разлика от List
интерфейса, наборите не могат да съдържат дублиращи се елементи.
Класове, които реализират Set
Тъй като Set
е интерфейс, не можем да създаваме обекти от него.
За да използваме функционалностите на Set
интерфейса, можем да използваме следните класове:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Тези класове са дефинирани в Collections
рамката и изпълняват Set
интерфейса.
Интерфейси, които разширяват Set
В Set
интерфейса също се удължава с тези subinterfaces:
- SortedSet
- NavigableSet
Как да използвам Set?
В Java трябва да импортираме java.util.Set
пакет, за да го използваме Set
.
// Set implementation using HashSet Set animals = new HashSet();
Тук създадохме така Set
наречените животни. Използвахме HashSet
класа за реализиране на Set
интерфейса.
Методи за задаване
В Set
интерфейса включва всички методи на Collection
интерфейса. Това е, защото Collection
е супер интерфейс на Set
.
Някои от често използваните методи на Collection
интерфейса, които също се предлагат в Set
интерфейса, са:
- add () - добавя посочения елемент към набора
- addAll () - добавя всички елементи от посочената колекция към набора
- iterator () - връща итератор, който може да се използва за последователен достъп до елементи от набора
- remove () - премахва посочения елемент от набора
- removeAll () - премахва всички елементи от набора, който присъства в друг определен набор
- retainAll () - запазва всички елементи в набора, които също присъстват в друг определен набор
- clear () - премахва всички елементи от набора
- size () - връща дължината (броя на елементите) на набора
- toArray () - връща масив, съдържащ всички елементи от набора
- contains () - връща,
true
ако комплектът съдържа посочения елемент - containsAll () - връща,
true
ако комплектът съдържа всички елементи от посочената колекция - hashCode () - връща стойност на хеш код (адрес на елемента в набора)
За да научите за повече методи на Set
интерфейса, посетете Java Set (официална документация за Java).
Задайте операции
Интерфейсът на Java Set
ни позволява да изпълняваме основни операции с математически набор като обединение, пресичане и подмножество.
- Съюз - за да получим обединението на два множества х и у, можем да използваме
x.addAll(y)
- Пресичане - за да получим пресечната точка на две множества x и y, можем да използваме
x.retainAll(y)
- Подмножество - за да проверим дали x е подмножество на y, можем да използваме
y.containsAll(x)
Прилагане на зададения интерфейс
1. Внедряване на клас HashSet
import java.util.Set; import java.util.HashSet; class Main ( public static void main(String() args) ( // Creating a set using the HashSet class Set set1 = new HashSet(); // Add elements to the set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); // Creating another set using the HashSet class Set set2 = new HashSet(); // Add elements set2.add(1); set2.add(2); System.out.println("Set2: " + set2); // Union of two sets set2.addAll(set1); System.out.println("Union is: " + set2); ) )
Изход
Комплект1: (2, 3) Комплект2: (1, 2) Съюзът е: (1, 2, 3)
За да научите повече за HashSet
, посетете Java HashSet.
2. Внедряване на клас TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main ( public static void main(String() args) ( // Creating a set using the TreeSet class Set numbers = new TreeSet(); // Add elements to the set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("Set using TreeSet: " + numbers); // Access Elements using iterator() System.out.print("Accessing elements using iterator(): "); Iterator iterate = numbers.iterator(); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Изход
Задайте с помощта на TreeSet: (1, 2, 3) Достъп до елементи с помощта на итератор (): 1, 2, 3,
За да научите повече за TreeSet
, посетете Java TreeSet.
Сега, когато знаем какво Set
е, ще видим нейните приложения в класове като EnumSet
, HashSet
, LinkedHashSet
и TreeSet
в следващите уроци.