set interface java
Овај водич за Јава сет објашњава све о подешеном интерфејсу у Јави. Обухвата начин итерирања кроз сет, сет метода, имплементацију, сет на листу итд.:
Сет ин Јава је интерфејс који је део Јава Цоллецтион Фрамеворк-а и имплементира интерфејс Цоллецтион. Збирка скупова пружа карактеристике математичког скупа.
Скуп се може дефинисати као колекција неуређених објеката и не може садржати двоструке вредности. Како постављени интерфејс наслеђује интерфејс Цоллецтион, он примењује све методе интерфејса Цоллецтион.
=> Овде погледајте савршен водич за обуку за Јава.
Шта ћете научити:
Јава Сет
Постављени интерфејс имплементирају класе и интерфејси као што је приказано на доњем дијаграму.
Као што је приказано на горњем дијаграму, интерфејс Сет наслеђују класе, ХасхСет, ТрееСет, ЛинкедХасхСет и ЕнумСет. Интерфејси СортедСет и НавигаблеСет такође имплементирају Сет интерфејс.
Неке од важних карактеристика Сет интерфејса дате су у наставку:
- Постављени интерфејс је део оквира Јава Цоллецтионс Фрамеворк.
- Постављени интерфејс омогућава јединствене вредности.
- Може имати највише једну нулу вредност.
- Јава 8 пружа подразумевани метод за постављени интерфејс - Сплитератор.
- Постављени интерфејс не подржава индексе елемената.
- Постављени интерфејс подржава генеричке производе.
Како створити сет?
Постављени интерфејс у Јави део је пакета јава.утил. Да бисмо у програм укључили постављени интерфејс, морамо да користимо једну од следећих изјава о увозу.
import java.util.*;
или
import java.util.Set;
Једном када је функционалност подешеног интерфејса укључена у програм, можемо створити скуп у Јави користећи било коју од класа скупова (класе које примењују интерфејс скупа) како је приказано у наставку.
Set colors_Set = new HashSet();
Тада можемо покренути овај постављени објекат додавањем неколико елемената у њега помоћу методе адд.
colors_Set.add(“Red”); colors_Set.add(“Green”); colors_Set.add(“Blue”);
Поставите пример у Јави
Применимо једноставан пример у Јави да демонстрирамо интерфејс Сет.
import java.util.*; public class Main { public static void main(String() args) { // Set demo with HashSet Set Colors_Set = new HashSet(); Colors_Set.add('Red'); Colors_Set.add('Green'); Colors_Set.add('Blue'); Colors_Set.add('Cyan'); Colors_Set.add('Magenta'); //print set contents System.out.print('Set contents:'); System.out.println(Colors_Set); // Set demo with TreeSet System.out.print('
Sorted Set after converting to TreeSet:'); Set tree_Set = new TreeSet(Colors_Set); System.out.println(tree_Set); } }
Излаз:
Садржај сета: (Црвена, Цијан, Плава, Магента, Зелена)
Сортирани сет након конверзије у ТрееСет: (Плава, Цијан, Зелена, Магента, Црвена)
Итерате Тхроугх Сет ин Јава
Сваком од елемената скупа можемо приступити помоћу различитих приступа. У наставку ћемо размотрити ове приступе.
Коришћење Итератора
Можемо дефинисати итератор за прелазак кроз постављени објекат. Помоћу овог итератора можемо приступити сваком елементу у Сету и обрадити га.
Следећи Јава програм приказује итерацију кроз сет и штампа елементе скупа.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); // Create an iterator for the cities_Set Iterator iter = cities_Set.iterator(); // print the set contents using iterator System.out.println('Values using Iterator: '); while (iter.hasNext()) { System.out.print(iter.next()+ ' '); } } }
Излаз:
ХасхСет: (Бангалуру, Пуна, Колката, Хајдерабад)
Вредности које користе Итератор:
Бангалоре Пуне Колката Хајдерабад
Коришћење петље Фор-еацх
Такође можемо користити петљу за сваку за приступ елементима у скупу. Овде у петљи прелазимо кроз сет.
Следећи програм то показује.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using forEach loop:'); // print the set contents using forEach loop for(String val : cities_Set) { System.out.print(val + ' '); } } }
Излаз:
ХасхСет: (Бангалуру, Пуна, Колката, Хајдерабад)
Поставите садржај помоћу форЕацх петље:
Бангалоре Пуне Колката Хајдерабад
Коришћење Јава 8 Стреам АПИ-ја
Такође можемо поновити и приступити елементима скупа користећи АПИ Јава 8 стреам. У овом случају генеришемо ток из скупа, а затим прелазимо кроз ток користећи форЕацх петљу.
Јава програм у наставку приказује итерацију скупа помоћу АПИ-ја Јава 8 стреам.
import java.util.*; import java.util.HashSet; import java.util.stream.*; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using Java 8 stream API:'); //generate a stream from set Stream stream = cities_Set.stream(); //iterate the stream using forEach loop to print the elements stream.forEach((element) -> { System.out.print(element + ' '); }); } }
Излаз:
ХасхСет: (Бангалуру, Пуна, Колката, Хајдерабад)
Поставите садржај помоћу Јава 8 стреам АПИ-ја:
Бангалоре Пуне Колката Хајдерабад
Подесите АПИ за методе
Доље су дате методе које подржава интерфејс Сет. Ове методе извршавају основне операције попут додавања, уклањања, садржавања итд., Заједно са осталим операцијама.
софтвер за копирање ДВД-а на рачунар
Метод | Прототип методе | Опис |
---|---|---|
Празно | боолеан исЕмпти () | Проверава да ли је сет празан |
додати | логички додатак (Е е) | Додаје елемент е скупу ако није присутан у скупу |
аддАлл | боолеан аддАлл (Колекција ц) | Додаје елемент колекције ц скупу. |
уклонити | логичко уклањање (објекат о) | Брише дати елемент о из скупа. |
уклони све | боолеан ремовеАлл (Колекција ц) | Уклања елементе присутне у датој колекцији ц из скупа. |
садржи | боолеан садржи (објекат о) | Проверава да ли је дати елемент о присутан у скупу. Враћа тачно ако је одговор да. |
садржиСве | боолеан цонтаинсАлл (Збирка ц) | Проверава да ли скуп садржи све елементе у наведеној колекцији; Враћа тачно ако је одговор да. |
ретаинАлл | боолеан ретаинАлл (Колекција ц) | Сет задржава све елементе у датој колекцији ц |
јасно | воид цлеар () | Брише скуп бришући све елементе из скупа |
итератор | Итератор итератор () | Користи се за добијање итератора за скуп |
тоАрраи | Објецт () тоАрраи () | Конвертује скуп у приказ низа који садржи све елементе у скупу. |
величина | инт величина () | Приказује укупан број елемената или величину скупа. |
хасхЦоде | хасхЦоде () | Приказује хасхЦоде скупа. |
Сада ћемо применити неке од метода о којима смо горе разговарали у Јава програму. Такође ћемо видети следеће специфичне операције које укључују два скупа.
Подесите имплементацију у Јави
Пресек: Ми задржавамо заједничке вредности између два скупа. Изводимо раскрсницу помоћу ретаинАлл метода.
Унија: Овде комбинујемо два сета. Ово се ради са аддАлл метода.
Разлика: Ова операција уклања један сет из другог. Ова операција се изводи помоћу уклони све метода.
import java.util.*; public class Main { public static void main(String args()) { //declare a set class (HashSet) Set numSet = new HashSet(); //add an element => add numSet.add(13); //add a list to the set using addAll method numSet.addAll(Arrays.asList(new Integer() {1,6,4,7,3,9,8,2,12,11,20})); //print the set System.out.println('Original Set (numSet):' + numSet); //size() System.out.println('
numSet Size:' + numSet.size()); //create a new set class and initialize it with list elements Set oddSet = new HashSet(); oddSet.addAll(Arrays.asList(new Integer() {1, 3, 7, 5, 9})); //print the set System.out.println('
OddSet contents:' + oddSet); //contains () System.out.println('
numSet contains element 2:' + numSet.contains(3)); //containsAll () System.out.println('
numSet contains collection oddset:' + numSet.containsAll(oddSet)); // retainAll () => intersection Set set_intersection = new HashSet(numSet); set_intersection.retainAll(oddSet); System.out.print('
Intersection of the numSet & oddSet:'); System.out.println(set_intersection); // removeAll () => difference Set set_difference = new HashSet(numSet); set_difference.removeAll(oddSet); System.out.print('Difference of the numSet & oddSet:'); System.out.println(set_difference); // addAll () => union Set set_union = new HashSet(numSet); set_union.addAll(oddSet); System.out.print('Union of the numSet & oddSet:'); System.out.println(set_union); } }
Излаз:
Оригинални сет (нумСет): (1, 2, 3, 4, 20, 6, 7, 8, 9, 11, 12, 13)
нумСет Величина: 12
Садржај ОддСет-а: (1, 3, 5, 7, 9)
нумСет садржи елемент 2: тачно
нумСет садржи колекцију оддсет: фалсе
Пресек нумСет и оддСет: (1, 3, 7, 9)
Разлика у нумСет & оддСет: (2, 4, 6, 8, 11, 12, 13, 20)
Унија нумСет и оддСет: (1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 20)
Постави на низ
Видели смо методу „тоАрраи“ у горњем одељку о методама. Ова метода тоАрраи може се користити за претварање скупа у низ.
Јава програм у наставку претвара Сет у низ.
import java.util.*; public class Main { public static void main(String() args) { //declare a set class (HashSet) Set setOfColors= new HashSet(); // add data to HashSet setOfColors.add('Red'); setOfColors.add('Green'); setOfColors.add('Blue'); setOfColors.add('Cyan'); setOfColors.add('Magenta'); //print the set System.out.println('The set contents:' + setOfColors); //convert Set to Array using toArray () method String colors_Array() = setOfColors.toArray(new String(setOfColors.size())); //print the Array System.out.println('Set converted to Array:' + Arrays.toString(colors_Array)); } }
Излаз:
Садржај комплета: (Црвена, Цијан, Плава, Магента, Зелена)
Постављено у низ: (Црвена, Цијан, Плава, Магента, Зелена)
Низ који треба поставити
Да бисмо претворили низ у скуп на Јави, можемо следити два приступа као што је приказано у наставку.
# 1) Можемо претворити низ у листу помоћу методе асЛист, а затим проследити ову листу као аргумент конструктору скупа. То резултира стварањем објекта скупа са елементима низа.
#два) Алтернативно, можемо користити методу Цоллецтионс.аддАлл за копирање елемената низа у постављени објекат.
Јава програм у наставку примењује оба ова приступа за претварање низа у сет.
import java.util.*; public class Main { public static void main(String() args) { //declare an array Integer() numArray = {10,50,40,20,60,30,80,70}; System.out.println('The input array:' + Arrays.toString(numArray)); //Approach 1: create a set class and provide array //converted to list as constructor arg Set numSet = new HashSet(Arrays.asList(numArray)); //print the set System.out.println('
Array converted to set through asList:' + numSet); //create another set Set intSet = new HashSet(); //Approach 2: use Collections.addAll method to copy array elements to the set Collections.addAll(intSet, numArray); //print the set System.out.println('
Array converted to set using Collections.addAll:' + intSet); } }
Излаз:
Улазни низ: (10, 50, 40, 20, 60, 30, 80, 70)
Низ претворен у постављен кроз асЛист: (80, 50, 20, 70, 40, 10, 60, 30)
Низ претворен у скуп помоћу Цоллецтионс.аддАлл: (80, 50, 20, 70, 40, 10, 60, 30)
Постави на листу
Да бисмо претворили скуп у списак у Јави, можемо користити методу „аддАлл“ класе листе. Овај метод копира садржај скупа или било које колекције која се пружа као аргумент на листу која позива методу аддАлл.
Јава програм у наставку претвара скуп у АрраиЛист.
import java.util.*; public class Main { public static void main(String() args) { //declare a set class and initialize it Set strSet= new HashSet(); strSet.add('one'); strSet.add('two'); strSet.add('three'); strSet.add('four'); strSet.add('five'); //print the set System.out.println('The set contents: ' + strSet); //declare an ArrayList List strList = new ArrayList(); //using addAll method,copy set elements to ArrayList strList.addAll(strSet); //print the ArrayList System.out.println('The ArrayList from set : ' + strList); } }
Излаз:
Садржај комплета: (четири, један, два, три, пет)
Листа арраи-а из скупа: (четири, један, два, три, пет)
Листа за постављање
Да бисмо дату листу, попут АрраиЛист, претворили у скуп на Јави, преносимо објект листе као аргумент конструктору скупа.
Следећи Јава програм имплементира ову конверзију.
import java.util.*; public class Main { public static void main(String() args) { //declare an ArrayList and initialize it List strList = new ArrayList(); strList.add('one'); strList.add('two'); strList.add('three'); strList.add('four'); strList.add('five'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //declare a set class with ArrayList as argument to the constructor Set strSet= new HashSet(strList); //print the set System.out.println('The Set obtained from ArrayList: ' + strSet); } }
Излаз:
Листа Арраи: (један, два, три, четири, пет)
Скуп добијен из АрраиЛист: (четири, један, два, три, пет)
Поредај сет у Јави
Колекција Сет на Јави нема директан метод сортирања. Зато морамо следити неке индиректне приступе за сортирање или уређивање садржаја постављеног објекта. Међутим, постоји изузетак у случају да је постављени објекат ТрееСет.
Објекат ТрееСет по дефаулту пружа уређени скуп. Стога, ако смо заинтересовани за уређени скуп елемената, требало би да се одлучимо за ТрееСет. За ХасхСет или ЛинкедХасхСет објекте, можемо претворити скуп у Лист. Сортирајте листу помоћу методе Цоллецтионс.сорт (), а затим листу поново претворите у постављену.
Овај приступ је приказан у доњем Јава програму.
import java.util.Arrays; import java.util.Collections; import java.util.*; public class Main{ public static void main(String() args) { //Declare a set and initialize it with unsorted list HashSet evenNumSet = new LinkedHashSet( Arrays.asList(4,8,6,2,12,10,62,40,36) ); //print the unsorted set System.out.println('Unsorted Set: ' + evenNumSet); //convert set to list List numList = new ArrayList(evenNumSet); //Sort the list using Collections.sort () method Collections.sort(numList); //convert set to list evenNumSet = new LinkedHashSet(numList); //convert list to set //Print the sorted set System.out.println('Sorted Set:' + evenNumSet); } }
Излаз:
Неразврстани сет: (4, 8, 6, 2, 12, 10, 62, 40, 36)
Сортирани сет: (2, 4, 6, 8, 10, 12, 36, 40, 62)
Листа Вс постављена у Јави
Размотримо неке разлике између списка и скупа.
Листа | Комплет |
---|---|
Нулл вредности су дозвољене. | Дозвољена је само једна нулл вредност. |
Имплементира интерфејс листе. | Имплементира Сет интерфејс. |
Садржи Легаци класу, Вецтор. | Нема наслеђених часова. |
АрраиЛист, ЛинкедЛист је имплементација интерфејса листе. | ХасхСет, ТрееСет, ЛинкедХасхСет су Сет имплементације. |
Уређени редослед елемената. | Неуређена колекција различитих елемената. |
Омогућава дупликате. | Нису дозвољени дупликати. |
Може приступити елементима према положају елемента. | Нема позиционог приступа. |
Нове методе дефинисане у интерфејсу Листа. | У интерфејсу Сет нису дефинисане нове методе. Методе интерфејса за прикупљање треба користити са подкласама Сет. |
Може се прелазити у правцу напријед и назад користећи ЛистИтератор. | Преко Итератора се може прећи само у смеру напред. |
Често постављана питања
П # 1) Шта је скуп у Јави?
Одговор: Скуп је неуређена колекција јединствених елемената и обично моделира концепт скупа у математици.
Сет је интерфејс који проширује интерфејс Цоллецтион. Садржи методе које наслеђује из интерфејса Цоллецтион. Постављени интерфејс додаје само ограничење, тј. Не смеју бити дозвољени дупликати.
К # 2)Да ли је Сет уређен на Јави?
Одговор: Не. Јава Сет није наручен. Такође не пружа позициони приступ.
питања и одговори за Јава код за интервју
К # 3)Да ли сет може да садржи дупликате?
Одговор: Скуп је колекција јединствених елемената, не може имати дупликате.
К # 4)Да ли је Јава Сет итерабле?
Одговор: Да. Сет интерфејс имплементира Итерабле интерфејс и тако се сет може прећи или поновити помоћу форЕацх петље.
К # 5)Да ли је НУЛЛ дозвољено у сету?
Одговор: Сет дозвољава нулл вредност, али највише једна нулл вредност је дозвољена у имплементацијама скупова као што су ХасхСет и ЛинкедХасхСет. У случају ТрееСет, он изузима рунтиме изузетак ако је наведена нулл.
Закључак
У овом упутству смо разговарали о општим концептима и имплементацији везаним за Сет интерфејс у Јави.
Сет интерфејс нема дефинисане нове методе, али користи методе интерфејса Цоллецтор и додаје само имплементацију да забрани дуплиране вредности. Скуп дозвољава највише једну нулу вредност.
У нашим наредним туторијалима разговараћемо о одређеним имплементацијама Сет интерфејса као што су ХасхСет и ТрееСет.
=> Посетите овде да бисте научили Јаву из нуле.
Препоручено читање
- Водич за Јава рефлексију са примерима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Јава Стринг садржи () Водич за методе са примерима
- Назубљени низ у Јави - Водич са примерима
- Водич за класу Јава Сцаннер са примерима
- Водич за дужину Јава низа са примерима кода
- Јава Стринг Водич | Јава стринг методе са примерима
- Шта је Јава Вецтор | Водич за Јава векторску класу са примерима