java collections framework tutorial
Овај водич детаљно објашњава Јава Цоллецтионс Фрамеворк (ЈЦФ), заједно са хијерархијом колекција, разним интерфејсима и предностима ЈЦФ-а:
Надам се овим елоквентним водичима о овоме Јава серија за почетнике заиста помажу у обогаћивању вашег знања о Јави.
Наш претходни водич је укратко представио основне И / О операције у Јави . У овом упутству ћемо детаљно научити о Јава Цоллецтионс Фрамеворк (ЈЦФ).
Јава Цоллецтионс Фрамеворк (ЈЦФ) садржи интерфејсе, апстрактне класе и класе које могу пружити архитектуру за чување и манипулацију групом објеката.
Шта ћете научити:
- Видео водичи о оквиру Јава Цоллецтионс
- Закључак
Видео водичи о оквиру Јава Цоллецтионс
Знање Арраилист-а на Јави:
Подесите интерфејс и интерфејс реда у Јави са примерима у реалном времену:
ХасхМап, ТрееМап и ХасхТабле у Јави:
До сада смо видели променљиве у којима се чувају различите врсте података. То су јединствене јединице и нису од велике помоћи када имате огромне количине података за чување и бављење њима. Као што знамо, подаци су најважнији састојак рачунарске обраде.
Ваша апликација мора бити у стању да издвоји и прикупи податке, обради их да би пронашла корисне информације, а такође их прослеђује амо-тамо како би се ефикасно користила за постизање решења.
У овом софтверском свету чувамо податке који треба да буду структурирани на одређени начин тако да софтверски програми могу да чувају, читају, обрађују и на крају дају резултате. То се ради помоћу структура података.
Скоро сви програмски језици подржавају структуре података. Структура података може се дефинисати као структурирани приказ података. Програмски језици пружају АПИ (Апплицатион Программинг Интерфаце) функције за манипулацију структурама података.
Неед Фор Цоллецтион Фрамеворк
Пре Јава 1.2, програмски језик Јава подржавао је структуре података као што су низови, вектори или хеш табеле. Извођење операција на овим структурама података није било лако јер није постојао заједнички интерфејс који је радио на тим структурама података.
Програмерима је било тешко да напишу алгоритме који ће радити за све структуре података и што је представљало велику гњаважу. Постојала је потреба за заједничким интерфејсом који би доследно радио на свим структурама података и такође ефикасно изводио операције.
Касније је Јава смислила оквир колекција који је група класа и интерфејса који се састоје од различитих операција које се могу изводити на структурама података.
У овом упутству за Јава колекције ћемо разговарати о оквиру Јава Цоллецтионс Фрамеворк уопште. Истражићемо сваку од компоненти колекције у нашим предстојећим водичима.
Јава Цоллецтионс Фрамеворк
Пре него што дефинишемо Јава Цоллецтионс Фрамеворк, упознајмо се са значењем цоллецтион и фрамеворк-а.
Колекција се може дефинисати као група предмета. Колекција је обично једна целина која се састоји од више предмета. Фрамеворк је софтвер који има готов функционални интерфејс или архитектуру и такође садржи скуп класа и интерфејса који се користе са обезбеђеним интерфејсом.
Оквир колекција је дефинисан као обједињена, готова архитектура која се састоји од доле наведеног.
# 1) Алгоритми
То су методе или скуп изјава који програмерима могу помоћи у претраживању, сортирању и обради прикупљених података. Колекција долази у пакету са интерфејсима, класама и алгоритмима.
Апликације које су развијене наслеђивањем оквира за прикупљање имају приступ тим алгоритмима и користе већ дефинисане методе и процедуре.
# 2) Интерфејси
Интерфејси у Јави пружају апстракцију имплементације, тј. Користећи интерфејсе, корисник није свестан детаља имплементације, али може видети само методе и податке потребне за писање апликације. Интерфејс за сакупљање има много интерфејса које програмер може применити за писање сопствених класа.
# 3) Часови
Класе Цоллецтион Фрамеворк-а су структуре података које се могу имплементирати у програм. Ове класе имплементирају интерфејс „Колекција“ и тако наслеђују све методе и дефиниције интерфејса колекције.
Оквир колекције се користи за складиштење и манипулисање колекцијом која је група објеката.
Оквир Јава колекције састоји се од алгоритама високих перформанси који извршавају стандардне операције попут претраживања, сортирања и обраде. Пружа различите стандардне имплементације, укључујући ЛинкедЛист, ТрееСет и ХасхСет за које су обезбеђени интерфејси.
Даље, схватимо хијерархију Јава Цоллецтион.
Јава колекција хијерархија
Све класе и интерфејси приказани у доњој хијерархији Јава Цоллецтион припадају пакету „јава.утил. *“.
Као што је приказано на горњем дијаграму, Хијерархија Јава колекције састоји се од различитих класа и интерфејса. Као што видите, свака класа наслеђује од интерфејса, а све класе и интерфејси заузврат наслеђују од једног интерфејса „колекције“.
Размотримо неке уобичајене методе у интерфејсу за прикупљање заједно са кратким уводом о свакој од класа и интерфејса који су приказани у горњој хијерархији.
Интерфејс колекције
Сучеље Цоллецтион је роот интерфејс. Све класе у оквиру колекције имплементирају интерфејс колекције. То значи да ће свака колекција имати методе декларисане у интерфејсу колекције.
Неке од метода интерфејса Цоллецтион су дате у наставку.
Не | Прототип методе | Опис |
---|---|---|
7 | подразумевано логичко уклањањеИф (филтер предиката) | Уклоните све елементе који задовољавају дати предикатни „филтер“ из колекције. |
један | јавна инт величина () | Враћа број елемената у датој колекцији. |
два | јавна празнина јасна () | Брише колекцију уклањањем свих елемената из колекције. |
3 | јавни логички додатак (Е е) | Убацује елемент е у колекцију. |
4 | публиц боолеанаддАлл (Колекција ц) | У колекцију убаците све елементе из колекције дане од ц. |
5 | јавно логичко уклањање (елемент објекта) | Избришите елемент који даје „елемент“ из колекције. |
6 | јавни боолеан ремовеАлл (Цоллецтионц) | Уклоните колекцију ц из колекције. |
8 | публиц боолеанретаинАлл (Колекција ц) | Избришите све елементе из колекције, осим оних у наведеној колекцији ц. |
9 | јавни итератор итератор () | Врати итератор за колекцију. |
10 | јавни објект () тоАрраи () | Претворите колекцију у низ. |
Једанаест | јавни Т () доАрраи (Т () а) | Претворите колекцију у низ са наведеним типом повратка. |
12 | јавни боолеан исЕмпти () | Врати ако је колекција празна или не. |
13 | публиц боолеан садржи (елемент објекта) | Проверите да ли колекција садржи дати елемент (операција претраживања). |
14 | публиц боолеанцонтаинсАлл (Цоллецтионц) | Проверите да ли колекција садржи наведену колекцију ц у себи. |
петнаест | подразумевани сплитератор сплитератор () | Враћа сплитератор преко одређене колекције. |
16 | јавне боолеанекуалс (елемент објекта) | Користи се за подударање две колекције. |
17 | подразумевани Стреам параллелСтреам () | Враћа паралелни ток користећи колекцију као извор. |
18 | подразумевани Стреамстреам () | Враћа секвенцијални ток који користи колекцију као извор. |
19 | јавни инт хасхЦоде () | Враћа нумерички хасхцоде колекције. |
Итерабле Интерфаце
Интерфејс Итерабле је такође основни интерфејс оквира за прикупљање. Интерфејс Цоллецтион који је надређени интерфејс свих осталих класа проширује интерфејс Итерабле. Отуда све класе имплементирају интерфејс за сакупљање као и интерфејс који се може итерати.
Интерфејс Итерабле има само један итератор методе () који враћа итератор () који можете користити за итерацију елемената типа Т.
Iterator iterator ()
Итератор Интерфаце
Интерфејс Итератор пружа могућност итерације по елементима у правцу напред.
Следе методе које овај интерфејс подржава.
Не | Прототип методе | Опис |
---|---|---|
један | јавни објекат нект () | Прво враћа елемент, а затим помера курсор да би усмерио на следећи елемент. |
два | јавни боолеан хасНект () | Проверава да ли итератор има више елемената. |
3 | уклони јавну празнину () | Уклања елемент који је итератор на крају вратио. |
Лист Интерфаце
Интерфејс листе наслеђује интерфејс колекције. Интерфејс листе садржи структуре података које се користе за чување уређених података или прикупљање објеката. Ове структуре података су типа листе. Ове структуре података које имплементирају интерфејс листе могу да имају дупликате вредности или не.
Интерфејс листе садржи методе које се користе за приступ, уметање или уклањање елемената из објеката листе.
Разне класе које имплементирају интерфејс Лист су следеће:
како ући у ка тестирање
- Низ листа
- ЛинкедЛист
- Вецтор
- Гомила
Укратко ћемо разговарати о свакој од ових класа. Наше наредне теме имаће детаљну дискусију о свакој од класа оквира колекције.
# 1) АрраиЛист
АрраиЛист је најједноставнија имплементација интерфејса Лист. АрраиЛист чува редослед уметања и није синхронизован.
Општа дефиниција структуре података АрраиЛист (Цоллецтион) је следећа:
List list1= new ArrayList ();
Једном када је листа дефинисана, можете користити методу „додај“ за додавање елемената. Имајте на уму да је АрраиЛист интерно користио механизам динамичког низа.
Погледајте следеће примере који креирају колекцију боја АрраиЛист.
import java.util.*; class Main { public static void main(String args()) { //Creating arraylist of String objects ArrayList color_list=new ArrayList(); //populate the arraylist with add method color_list.add('Red'); color_list.add('Green'); color_list.add('Blue'); color_list.add('Cyan'); color_list.add('Magenta'); color_list.add('Yellow'); //Traverse the list through Iterator Iterator itr=color_list.iterator(); System.out.println('The contents of the arraylist are:'); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Излаз:
Горњи програм приказује демонстрацију колекције АрраиЛист. Колекцији додајемо вредности боја, а затим прелазимо колекцијом да бисмо приказали појединачне вредности у колекцији помоћу итератора.
# 2) ЛинкедЛист
Колекција ЛинкедЛист интерно користи двоструко повезан механизам листе за чување елемената. Може садржати дупликате елемената. Операције прикупљања ЛинкедЛист-а су брже јер није потребно премештање елемената.
Општа дефиниција креирања повезане листе је следећа:
List list2 = new LinkedList ();
Следећи програм показује повезана листа колекција имена бројева .
import java.util.*; class Main { public static void main(String args()) { //linked list of String objects LinkedList linkedlist_num=new LinkedList(); linkedlist_num.add('one'); linkedlist_num.add('two'); linkedlist_num.add('three'); linkedlist_num.add('four'); linkedlist_num.add('five'); //iterate over the linked list to display contents Iterator itr=linkedlist_num.iterator(); System.out.println('The contents of the linked list are:'); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Излаз:
Тако креирамо повезану листу, а затим у њу додајемо елементе помоћу методе „додај“. Затим помоћу итератора прелазимо преко повезане листе и приказујемо сваки елемент.
# 3) Вектор
Вецтор је сличан АрраиЛист и користи динамички низ за чување елемената попут АрраиЛист. Али вектор подржава многе независне методе, осим колекције, због чега је бољи избор бити жељена колекција.
Општа дефиниција за сакупљање вектора је:
List list3 = new Vector();
Имајте на уму да иако вектори и АрраиЛист користе исти механизам динамичких низова, векторски елементи су синхронизовани.
Јава програм дат у наставку показује употребу вектора у оквиру колекције .
import java.util.*; public class Main { public static void main(String args()) { Vector subject_vector=new Vector(); subject_vector.add('English'); subject_vector.add('Hindi'); subject_vector.add('Maths'); subject_vector.add('Science'); Iterator itr=subject_vector.iterator(); System.out.println('Vector contents:'); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Излаз:
У овом програму смо дефинисали векторску колекцију која се састоји од субјеката. Додамо разне предмете, а затим користимо итератор за излаз елемената.
# 4) Стацк
Структура података стека имплементира начин убацивања елемената „последњи у првом стигао“ (ЛИФО). Стек је подкласа вектора класе (погледајте горњи дијаграм хијерархије колекције). Поред властитих метода, колекција стекова такође подржава методе сакупљања вектора.
Општа дефиниција колекције Стацк је:
List list4 = new Stack();
Следећи програм имплементира колекцију Стацк .
import java.util.*; public class Main { public static void main(String args()) { Stack even_stack = new Stack (); even_stack.push(2); even_stack.push(4); even_stack.push(6); even_stack.push(8); even_stack.push(10); System.out.println('The element removed from stack: ' + even_stack.pop()); Iterator itr=even_stack.iterator(); System.out.println('The contents of the stack are:'); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } } }
Излаз:
Као што видите у горњој имплементацији, нови елементи се додају у стек помоћу ‘Гурати’ операција. Стек има једну улазну тачку која се назива „Врх стека“ и елементи се гурају на стек на врху. Дакле, последњи додати елемент је на врху стека.
Попут додавања, елементи се уклањају и са једног краја, односно врха стека. За уклањање елемената користи се операција „поп“. Дакле, ако позовете поп (), елемент на врху стека ће бити уклоњен.
У горњи излаз убацујемо елемент 2, 4, 6,8,10, а затим позивамо поп () тако да се 10 уклони.
Интерфеј реда
Колекције изведене из интерфејса редоследа следе редослед „прво у првом изађи“ (ФИФО). Елементи су уметнути на једном крају, а уклоњени су на другом крају. Дакле, елемент који је први унесен је онај који се прво уклања.
Доље су дате колекције које подржавају интерфејс упита.
- ПриоритиКуеуе
- и интерфејс
- АрраиДекуе
Хајде да укратко разговарамо о сваком од ових.
# 1) ПриоритиКуеуе
У колекцији ПриоритиКуеуе, ускладиштени елементи се обрађују на основу њихових приоритета. Не можете сачувати нулл вредности у реду приоритета.
Општа дефиниција реда приоритета је следећа:
Queue q1 = new PriorityQueue();
Програм у наставку примењује приоритетни ред.
import java.util.*; public class Main { public static void main(String args()) { PriorityQueue color_queue=new PriorityQueue(); color_queue.add('red'); color_queue.add('green'); color_queue.add('blue'); color_queue.add('cyan'); color_queue.add('magenta'); color_queue.add('yellow'); System.out.println('Priority Queue elements:'); System.out.println('head:'+color_queue.peek()); System.out.println('Other elements in Priority Queue:'); Iterator itr=color_queue.iterator(); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } System.out.println('
'); color_queue.remove(); System.out.println('After removing element, new head:'+color_queue.element()); System.out.println('
'); color_queue.poll(); System.out.println('After removing another element, Priority Queue :'); Iterator itr2=color_queue.iterator(); while(itr2.hasNext()) { System.out.print(itr2.next() + ' '); } } }
Излаз:
Још једном користимо боје као елементе реда приоритета. У горе наведеном програму користили смо методе адд и ремове за додавање елемената у ред и уклањање елемената. Користимо методу пеек () која враћа елемент на који указује у реду приоритета.
На крају се помоћу итератора приказују елементи реда приоритета.
# 2) додирни интерфејс
Декуе или „двоструки ред“ је структура података која вам омогућава да додате и уклоните елементе са оба краја. Декуе интерфејс у оквиру Јава колекције који проширује интерфејс Куеуе.
Пружа функционалност декуе-а и има класу „АрраиДекуе“ која га наслеђује.
# 3) АрраиДекуе
АрраиДекуе имплементира декуе интерфејс.
Општа дефиниција АрраиДекуе је следећа:
Deque d = new ArrayDeque();
АрраиДекуе вам омогућава да користите функционалност Декуе-а. За разлику од осталих колекција попут АрраиЛист или стека, АрраиДекуе нема ограничења у свом капацитету.
Следећи пример приказује имплементацију АрраиДекуе.
import java.util.*; public class Main { public static void main(String() args) { //Creating Deque and adding elements Deque deque = new ArrayDeque (); deque.add(10); deque.add(20); deque.add(30); System.out.println('Deque Elements:'); //Traversing elements for (Integer num : deque) { System.out.println(num); } } }
Излаз:
У горњем програму дефинишемо колекцију АрраиДекуе типа интегер и додамо јој целобројне елементе помоћу методе адд. Затим се збирка прелази помоћу конструкције фор.
Сет Интерфаце
Постављени интерфејс је део пакета јава.утил и протеже се од интерфејса за прикупљање. Сет је структура која не дозвољава колекцији да има дупликате вредности и такође више од једне нулл вредности.
Следеће класе имплементирају постављени интерфејс.
- ХасхСет
- ЛинкедХасхСет
- ТрееСет
# 1) ХасхСет
Колекција ХасхСет која имплементира Сет интерфејс има различите вредности ускладиштене у себи. Ова колекција користи технику хеширања за складиштење предмета и користи хеш таблицу за складиштење елемената.
Т. општа дефиниција ХасхСет колекције је приказана у наставку.
Set s1 = new HashSet();
Имплементацију ХасхСет-а дали смо у следећем програму.
import java.util.*; public class Main { public static void main(String args()) { //Create HashSet set_subjects HashSet set_subjects=new HashSet(); System.out.println('Elements in the given hashsetset_subjects are:'); set_subjects.add('Maths'); set_subjects.add('Computers'); set_subjects.add('English'); set_subjects.add('French'); //Traverse the hashset Iterator itr=set_subjects.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Излаз:
У горњем програму креирамо колекцију предмета ХасхСет, а затим је прелазимо помоћу итератора за приказ елемената у колекцији.
# 2) ЛинкедХасхСет
ЛинкедХасхСет имплементира постављени интерфејс и проширује ХасхСет (упућује на хијерархију колекције). ЛинкедХасхСет је представљање повезане листе интерфејса Сет. ЛинкедХасхСет садржи јединствене елементе, али дозвољава нулл вредности.
Општа дефиниција ЛинкедХасхСет је дата у наставку.
Set s2 = new LinkedHashSet();
Примена за ЛинкедХасхСет дата је у наставку.
import java.util.*; public class Main { public static void main(String args()) { LinkedHashSet set_subjects=new LinkedHashSet(); System.out.println('Elements in the LinkedHashSet set_subjects:'); set_subjects.add('Maths'); set_subjects.add('Computers'); set_subjects.add('English'); set_subjects.add('Sanskrit'); Iterator itr=set_subjects.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Излаз:
Поново користимо наслове књига за стварање Линкедхасхсет-а. Као што можете видети из резултата, редослед додавања одржава линкедХасхСет.
СортедСет Интерфаце
Интерфеј СортедСет омогућава потпуно уређивање елемената. Садржи методе које пружају природно уређење елемената. Елементи у колекцији који имплементирају интерфејс СортедСет распоређени су у све већем редоследу.
Класа ТрееСет је један од примера који имплементира СортедСет интерфејс.
Треесет
Општа дефиниција Треесета је следећа:
Set s3 = new TreeSet();
ТрееСет имплементира СортедСет интерфејс и садржи јединствене елементе. Складиштење и преузимање су прилично брзи и тада су елементи распоређени у растућем редоследу.
import java.util.*; public class Main{ public static void main(String args()) { //create a treeset of integers TreeSet set_oddnums=new TreeSet (); set_oddnums.add(1); set_oddnums.add(3); set_oddnums.add(5); set_oddnums.add(7); set_oddnums.add(9); System.out.println('Elements in TreeSet are:'); //traverse the treeset using iterator Iterator itr=set_oddnums.iterator(); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } } }
Излаз:
У горе наведеном програму створили смо и додали непарне бројеве у колекцију помоћу метода додавања. Затим помоћу итератора излазимо елементе у колекцију.
Предности оквира за Јава колекције
- Смањено програмирање: Оквир Цоллецтионс долази са свим интерфејсима и класама који садрже методе које програмерима могу омогућити да напишу ефикасан програм. На овај начин програмер не мора бити усредсређен на превише програмирања.
- Конзистентне методе и АПИ: Све класе имају заједничке методе које делују на податке. Ови АПИ-ји су доследни током предавања и програмер не мора да брине да ће имати превише различитих метода за сваку класу.
- Повећајте брзину и тачност: Можете писати високо ефикасне програме користећи оквир за прикупљање, а такође и брже и тачније програме, јер оквир за прикупљање пружа пуну функционалност за примену структура података и колекција.
- Олакшава поновну употребу софтвера: Структуре података и алгоритми оквира за прикупљање Јава могу се поново користити.
- Интероперабилност међу неповезаним АПИ-има: АПИ-ји за прикупљање омогућавају интероперабилност чак и међу неповезаним АПИ-има.
- Мање напора за дизајнирање нових АПИ-ја: Програмери могу користити стандардне АПИ-је за прикупљање и на основу тога дизајнирати нове АПИ-је. Не морају да се муче да напишу комплетне нове АПИ-је.
Често постављана питања
# 1) Која је употреба оквира за прикупљање у Јави?
Одговор: Оквир за прикупљање нуди унапред упаковане алгоритме, интерфејсе и класе који програмерима омогућавају писање високо ефикасних програма који могу да чувају и обрађују податке.
# 2) Зашто је Збирка оквир?
Одговор: Оквир је збирка класа, интерфејса и алгоритама за вишекратну употребу. Оквир за прикупљање такође је збирка класа структуре података и алгоритама који раде на тим класама за вишекратну употребу.
# 3) Шта је Јава Цоллецтионс АПИ у Јави?
Одговор: АПИ за Јава колекције пружа интерфејсе и класе који се могу проширити и имплементирати како би се користиле структуре података које нису ништа друго до колекције.
# 4) Која је разлика између колекције и колекција у Јави?
Одговор: Колекција је основни интерфејс у оквиру колекције, док је „збирке“ класа. Оба су део пакета јава.утил.
**** Више детаља и примери оквира Јава Цоллецтионс: ****
Поређење између листе, скупа и реда:
Листа | Комплет | Ред чекања |
---|---|---|
Ред за уметање се одржава | Редослед уметања се не одржава у Хасх скупу | Ред за уметање се одржава. |
Може садржати дупликате елемената | Не може да садржи поновљене елементе | Може садржати дупликате елемената. |
Уметање и уклањање низа може се извршити за било који индекс. | Уклоните наведени елемент. | Може се искочити само последњи уметнути елемент. Такође, уметање елемената се дешава на крају. |
Класа листе низова
У Арраи-у је додела меморије фиксна. Али у АрраиЛист меморија се може динамички доделити. Ова класа АрраиЛист одржава редослед уметања и можете уметнути дупликате елемената.
Демо програм за листу низова:
public class ArrayListDemo { public static void main(String() args) { ArrayList li = new ArrayList (); li.add(1); li.add(2); li.add(3); li.remove(0); for (Integer temp : li) { System.out.println(temp); } System.out.println('=========='); ArrayList l = new ArrayList(); l.add('text1'); l.add('text2'); l.add('text3'); for (String temp : l) { System.out.println(temp); } System.out.println('=========='); ArrayList al=new ArrayList(); al.add(1); al.add(2); al.forEach((a)->;System.out.println(a)); } }
ЛинкедЛист Цласс
Структура података повезане листе садржи чворове и овај чвор ће садржати два дела:
- Подаци
- Упућивање на следећи елемент
Први чвор није засебан чвор. Садржи само референцу и назива се глава. Последњи чвор је нулл.
Демо програм:
public class LinkedListDemo { public static void main(String() args) { LinkedList list =new LinkedList(); list.add(22); list.add(44); list.add(46); list.add(46); list.add(46); for(Integer temp:list) { System.out.println(temp); } Iterator it =list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println('=========='); for (int i=0;i 
Ред чекања
Ред чекања је први у структури података (ФИФО). Ако позовете методу уклањања, увек ће први уметнути елемент бити уклоњен из реда. Дакле, Ред се користи у апликацији у реалном времену где се подаци морају преузимати у уметнутом редоследу.
како да ажурирам свој биос виндовс 10
Пример програма:
public class QueueDemo { public static void main(String() args) { PriorityQueue pq=new PriorityQueue(); pq.add(1); pq.add(2); pq.add(3); pq.add(4); pq.add(5); pq.add(6); pq.add(7); for(int temp : pq) { System.out.println(temp); } pq.remove(); System.out.println('queue after removing a element'); System.out.println(pq); } }

Комплет
Збирка скупова неће дозволити дуплициране елементе. Можете користити постављену структуру података када желите да обрађујете прикупљање података без дуплирања и када нема потребе да се одржава редослед уметања.
Демо програм:
public class demohashset { public static void main (String() args){ HashSet hs=new HashSet(); hs.add(23); hs.add(24); hs.add(25); hs.add(26); hs.add(27); hs.add(28); hs.add(293); hs.add(203); hs.add(263); hs.add(243); hs.add(243); (int temp:hs) { System.out.println(temp); } hs.remove(24); hs.remove(23); System.out.println('==============='); System.out.println('after removing a element ::::'); System.out.println('==============='); hs.forEach((temp)->System.out.println(temp)); ; } }

МАП интерфејс
- Када желите прикупити елементе процеса са паром кључ и вредност, тада можете користити структуру података мапе јер је мапа објекат који може пресликати кључеве у вредности.
- Мапа не може садржати дупликате кључева.
- Најважније имплементације мапе су ХасхМап, Треемап, ЛинкедХасхМап, ХасхТабле.
Разлика између ХасхМап, Треемап, ЛинкедХасхМап и ХасхТабле:
ХасхМап ТрееМап ЛинкедХасхмап ХасхТабле Дозвољени су нулл кључеви и вредности Дозвољене су само нулл вредности. Дозвољени су нулл кључеви и вредности. Не дозвољава нулл кључеве и вредности. Није синхронизовано Није синхронизовано Није синхронизовано синхронизовано Не постоји гаранција за одржавање реда у итерацији Сортирање ће се извршити на основу природног редоследа. Ред за уметање ће се одржати Ред за уметање није одржан.
Демо програм:
public class HashMapDemo { public static void main(String() args) { HashMap m=new HashMap(); m.put(1, 'one'); m.put(2, 'two'); m.put(3, 'three'); m.put(4, 'four'); m.put(null, 'one'); m.put(null, null); System.out.println(m); TreeMap tm =new TreeMap(); tm.put('R', 'red'); tm.put('B', null); tm.put('G', 'green'); System.out.println(tm); Hashtable ht =new Hashtable(); ht.put(1, 'one'); ht.put(2, 'two'); ht.put(3, 'three'); ht.put(4, 'four'); System.out.println(ht); } }

Кључне тачке које треба напоменути:
- Лист, Куеуе, сет интерфејси проширују интерфејс колекције и овај интерфејс колекције има уобичајене методе попут додавања, уклањања итд.
- Редослед уметања одржава се на листи и скуп не може садржати дупликате елемената. Ред чекања је први у структури података Први излаз.
- Мапа ће садржати парове кључева и вредности. ХасхМап, Треемап, Хасхтабле, Линк ХасхМап су важна имплементација интерфејса мапе.
Закључак
Ово упутство нам је дало увод у Јава Цоллецтионс Фрамеворк. Укратко смо додирнули све класе и интерфејсе који су део оквира Јава колекције.
У нашим следећим водичима у овој серији детаљно ћемо научити сваку од ових класа и интерфејса.
Више о Рефлецтионс ин ЈАВА можете истражити у нашем предстојећем водичу !!!
ПРЕВ Туториал |. | СЛЕДЕЋА Лекција
Препоручено читање
- Водич за Јава рефлексију са примерима
- Дубински водичи за помрачење за почетнике
- Јава СВИНГ лекције: Контејнери, компоненте и руковање догађајима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Приступити модификаторима у Јави - Водич са примерима
- Јава Стринг са Стринг бафером и Стринг Буилдер Туториал
- Увод у програмски језик Јава - Видео водич
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца