java collections framework tutorial
Acest tutorial explică Java Collections Framework (JCF) în detalii împreună cu ierarhia colecției, diverse interfețe și avantajele JCF:
Sper că aceste tutoriale elocvente în acest sens Seria Java pentru începători sunt foarte utile pentru a vă îmbogăți cunoștințele despre Java.
Tutorialul nostru anterior a prezentat mai multe despre operațiuni de I / O de bază în Java . În acest tutorial vom afla în detaliu despre Java Collections Framework (JCF).
Java Collections Framework (JCF) conține interfețe, clase abstracte și clase care pot furniza arhitectura pentru stocarea și manipularea unui grup de obiecte.
Ce veți învăța:
- Tutoriale video despre Java Collections Framework
- Concluzie
Tutoriale video despre Java Collections Framework
Cunoașterea Arraylist în Java:
Setați interfața și interfața cozii în Java cu exemple în timp real:
HashMap, TreeMap și HashTable în Java:
Până acum, am văzut variabile care stochează diferite tipuri de date. Acestea sunt unități unice și nu sunt foarte utile atunci când aveți cantități uriașe de date de stocat și de tratat. După cum știm, datele sunt cel mai important element al procesării computerizate.
Aplicația dvs. trebuie să fie capabilă să extragă și să adune date, să le proceseze pentru a afla informații utile și, de asemenea, să le transmită încolo și încolo, astfel încât să fie utilizate în mod eficient pentru a ajunge la soluții.
În această lume a software-ului, stocăm datele care trebuie structurate într-o manieră specială, astfel încât programele software să poată stoca, citi, procesa și, în cele din urmă, să producă rezultatele. Acest lucru se face folosind structuri de date.
Aproape toate limbajele de programare acceptă structuri de date. Structura datelor poate fi definită ca o reprezentare structurată a datelor. Limbajele de programare oferă funcții API (Application Programming Interface) pentru a manipula structurile de date.
Nevoia de cadru de colectare
Înainte de Java 1.2, limbajul de programare Java suporta structuri de date cum ar fi tablouri, vectori sau tabele hash. Efectuarea operațiunilor pe aceste structuri de date nu a fost ușoară, deoarece nu a existat o interfață comună care să funcționeze pe aceste structuri de date.
Programatorilor le era greu să scrie algoritmi care să funcționeze pentru toate structurile de date și să fie o mare problemă. Era nevoie de o interfață comună care să funcționeze în mod constant pe toate structurile de date și să efectueze, de asemenea, operațiuni eficient.
Mai târziu, Java a venit cu un cadru de colecții care este un grup de clase și interfețe constând din diverse operațiuni care pot fi efectuate pe structuri de date.
În acest tutorial Java Collections, vom discuta despre Java Collections Framework în general. Vom explora fiecare dintre componentele colecției în tutorialele noastre viitoare.
Java Collections Framework
Înainte de a defini un Java Collections Framework, să aflăm semnificația colecției și un cadru.
O colecție poate fi definită ca un grup de obiecte. O colecție este de obicei o singură unitate formată din mai multe obiecte. Un cadru este un software care are o interfață funcțională sau o arhitectură gata făcută și conține, de asemenea, un set de clase și interfețe pentru a fi utilizate cu interfața furnizată.
Un cadru de colecții este definit ca o arhitectură unificată, gata făcută, constând din cele de mai jos.
# 1) Algoritmi
Acestea sunt metode sau set de declarații care pot ajuta programatorii în căutarea, sortarea și prelucrarea datelor colectate. Colecția vine ambalată cu interfețe, clase și algoritmi.
Aplicațiile care sunt dezvoltate prin moștenirea cadrului de colectare au acces la acești algoritmi și utilizează metodele și procedurile deja definite.
# 2) Interfețe
Interfețele din Java oferă abstracția implementării, adică folosind interfețe, utilizatorul nu este conștient de detaliile implementării, dar poate vedea doar metodele și datele necesare pentru a scrie o aplicație. Interfața de colectare are multe interfețe care pot fi implementate de programator pentru a scrie propriile clase.
# 3) Cursuri
Clasele cadrului de colectare sunt structuri de date care pot fi implementate într-un program. Aceste clase implementează interfața „Colecție” și astfel moștenesc toate metodele și definițiile interfeței de colecție.
Un cadru de colecție este utilizat pentru stocarea și manipularea colecției care este grupul de obiecte.
Cadrul de colectare Java constă din algoritmi performanți care efectuează operațiuni standard precum căutarea, sortarea și procesarea. Oferă diverse implementări standard, inclusiv LinkedList, TreeSet și HashSet pentru care sunt furnizate interfețe.
Apoi, să înțelegem ierarhia colecției Java.
Ierarhia colecției Java
Toate clasele și interfețele prezentate în ierarhia Java Collection de mai jos aparțin pachetului „java.util. *”.
Așa cum se arată în diagrama de mai sus, Ierarhia colecției Java constă din diverse clase și interfețe. După cum puteți vedea, fiecare clasă moștenește de la o interfață și toate clasele și interfețele, la rândul lor, moștenesc de la o singură interfață de „colecție”.
Să discutăm câteva metode comune în interfața de colectare împreună cu o scurtă introducere despre fiecare dintre clasele și interfețele care sunt prezentate în ierarhia de mai sus.
Interfață de colecție
Interfața Colecție este interfața rădăcină. Toate clasele din cadrul de colectare implementează interfața de colectare. Aceasta înseamnă că fiecare colecție va avea metodele declarate în interfața Colecției.
Unele dintre metodele interfeței Colecție sunt prezentate mai jos.
Nu face | Metoda prototip | Descriere |
---|---|---|
7 | default boolean removeIf (filtru predicat) | Eliminați din colecție toate elementele care satisfac predicatul dat „filtru”. |
1 | dimensiunea publicului () | Returnează numărul de elemente dintr-o colecție dată. |
Două | public void clear () | Șterge colecția eliminând toate elementele din colecție. |
3 | public boolean add (E e) | Inserează un element e în colecție. |
4 | public booleanaddAll (Colecția c) | Introduceți toate elementele din colecția dată de c în colecție. |
5 | eliminare publică booleană (element obiect) | Ștergeți elementul dat de „element” din colecție. |
6 | public boolean removeAll (Collectionc) | Eliminați colecția c din colecție. |
8 | public booleanretainAll (Colecția c) | Ștergeți toate elementele din colecție, cu excepția celor din colecția specificată c. |
9 | public iterator iterator () | Returnează iteratorul pentru colecție. |
10 | public Object () toArray () | Convertiți colecția într-o matrice. |
unsprezece | public T () toArray (T () a) | Convertiți colecția într-o matrice cu un tip de returnare specificat. |
12 | public boolean isEmpty () | Reveniți dacă colecția este goală sau nu. |
13 | public boolean conține (element Object) | Verificați dacă o colecție conține elementul dat (operațiunea de căutare). |
14 | public booleancontainsAll (Collectionc) | Verificați dacă colecția conține colecția specificată c în interiorul său. |
cincisprezece | implicit Spliterator spliterator () | Returnează spliteratorul peste o colecție specificată. |
16 | public booleanequals (Element obiect) | Folosit pentru potrivirea a două colecții. |
17 | flux implicit parallelStream () | Returnează fluxul paralel folosind colecția ca sursă. |
18 | Streamstream implicit () | Returnează fluxul secvențial folosind colecția ca sursă. |
19 | public int hashCode () | Returnează codul hash numeric al colecției. |
Interfață iterabilă
Interfața Iterable este, de asemenea, interfața de bază a cadrului de colectare. Interfața de colecție care este interfața părinte a tuturor celorlalte clase extinde interfața Iterable. Prin urmare, toate clasele implementează o interfață de colectare, precum și o interfață Iterable.
Interfața Iterable are o singură metodă iterator () care returnează iteratorul () pe care îl puteți utiliza pentru a itera peste elementele de tip T.
Iterator iterator ()
Interfață Iterator
Interfața Iterator oferă posibilitatea de a itera elementele într-o direcție înainte.
Următoarele sunt metodele acceptate de această interfață.
Nu face | Metoda prototip | Descriere |
---|---|---|
1 | Obiect public next () | Mai întâi returnează elementul și apoi mută cursorul pentru a indica spre următorul element. |
Două | public boolean hasNext () | Verifică dacă iteratorul are mai multe elemente. |
3 | public void remove () | Elimină elementul care este returnat de iterator în cele din urmă. |
Listă interfață
Interfața listă moștenește interfața de colectare. Interfața listă conține structurile de date care sunt utilizate pentru a stoca date comandate sau colectarea de obiecte. Aceste structuri de date sunt de tip listă. Aceste structuri de date care implementează interfața listei pot avea sau nu valori duplicat.
Interfața listă conține metodele care sunt utilizate pentru a accesa, insera sau elimina elemente din obiectele listei.
Diferite clase care implementează interfața List sunt următoarele:
ce este testarea gestionării datelor în testarea software-ului
- ArrayList
- LinkedList
- Vector
- Grămadă
Vom discuta pe scurt fiecare dintre aceste clase. Subiectele noastre ulterioare vor avea o discuție detaliată asupra fiecărei clase de cadru de colecție.
# 1) ArrayList
ArrayList este cea mai simplă implementare a interfeței List. ArrayList păstrează ordinea de inserare și nu este sincronizată.
Definiția generală a structurii de date ArrayList (Colecție) este după cum urmează:
List list1= new ArrayList ();
Odată ce lista este definită, puteți utiliza metoda „adăugați” pentru a adăuga elemente. Rețineți că, în interior, ArrayList a folosit un mecanism de matrice dinamică.
Vedeți următoarele exemple care creează o colecție de culori 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()); } } }
Ieșire:
Programul de mai sus arată demonstrația colecției ArrayList. Adăugăm valori de culoare colecției și apoi traversăm colecția pentru a afișa valori individuale în colecție folosind un iterator.
# 2) LinkedList
Colecția LinkedList utilizează intern un mecanism de listă dublu legat pentru stocarea elementelor. Poate conține elemente duplicate. Operațiunile de colectare LinkedList sunt mai rapide, deoarece nu este necesară schimbarea elementelor.
Definiția generală a creării unei liste conectate este după cum urmează:
List list2 = new LinkedList ();
Următorul program demonstrează colecția de liste cu nume de numere .
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()); } } }
Ieșire:
Astfel, creăm o listă legată și apoi adăugăm elemente la aceasta folosind metoda „adăugați”. Apoi, folosind un iterator, parcurgem lista legată și afișăm fiecare element.
# 3) Vector
Vectorul este similar cu ArrayList și folosește o matrice dinamică pentru a stoca elemente precum ArrayList. Dar vectorul acceptă multe metode independente, în afară de colecție, ceea ce îl face o alegere mai bună pentru a fi o colecție preferată.
Definiția generală pentru colectarea vectorilor este:
List list3 = new Vector();
Rețineți că, deși vectorul și ArrayList utilizează același mecanism al matricelor dinamice, elementele vectoriale sunt sincronizate.
Programul Java prezentat mai jos demonstrează utilizarea vectorilor în cadrul de colectare .
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()); } } }
Ieșire:
În acest program, am definit o colecție de vectori compusă din subiecți. Adăugăm diverse subiecte și apoi folosim un iterator pentru a afișa elementele.
# 4) Stiva
Structura de date a stivei implementează modul de introducere a ultimelor elemente (LIFO). Stiva este o subclasă a vectorului de clasă (consultați diagrama ierarhiei de colecție de mai sus). În afară de propriile metode, colecția stivă acceptă și metodele de colectare a vectorilor.
Definiția generală a colecției Stack este:
List list4 = new Stack();
Următorul program implementează colecția 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() + ' '); } } }
Ieșire:
După cum puteți vedea în implementarea de mai sus, noile elemente sunt adăugate la stivă folosind 'Apăsați' Operațiune. Stiva are un singur punct de intrare numit „Partea de sus a stivei”, iar elementele sunt împinse pe stiva în partea de sus. Astfel, ultimul element adăugat este în partea de sus a stivei.
La fel ca adăugarea, elementele sunt, de asemenea, eliminate de la un capăt, adică partea de sus a stivei. Pentru a elimina elemente, se folosește o operație „pop”. Astfel, dacă apelați pop (), elementul din partea de sus a stivei va fi eliminat.
În ieșirea de mai sus, inserăm elementul 2, 4, 6,8,10 și apoi apelăm pop () astfel încât 10 să fie eliminat.
Interfață coadă
Colecțiile derivate din interfața cozii urmează ordinea primul intrat-primul ieșit (FIFO). Elementele sunt inserate la un capăt și sunt îndepărtate de la celălalt capăt. Prin urmare, elementul introdus întâi se întâmplă să fie elementul care este eliminat mai întâi.
Mai jos sunt colecțiile care acceptă interfața de interogare.
- PriorityQueue
- și interfață
- ArrayDeque
Să discutăm fiecare dintre acestea pe scurt.
# 1) PriorityQueue
În colecția PriorityQueue, elementele stocate sunt procesate pe baza priorităților lor. Nu puteți stoca valori nule în coada de prioritate.
Definiția generală a cozii de prioritate este următoarea:
Queue q1 = new PriorityQueue();
Programul de mai jos implementează coada de prioritate.
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() + ' '); } } }
Ieșire:
Încă o dată folosim culorile ca elemente ale cozii de prioritate. În programul de mai sus, am folosit metodele add and remove pentru a adăuga elemente în coadă și, respectiv, pentru a elimina un element. Folosim metoda peek () care returnează un element la care indică în coada de prioritate.
În cele din urmă folosind un iterator, sunt afișate elementele cozii prioritare.
# 2) interfață tactilă
Deque sau o „coadă dublă” este o structură de date care vă permite să adăugați și să eliminați elementele de la ambele capete. Interfața deque din cadrul de colectare Java care extinde interfața Queue.
Oferă funcționalitatea deque și are o clasă moștenitoare de la „ArrayDeque”.
# 3) ArrayDeque
ArrayDeque implementează interfața deque.
Definiția generală a ArrayDeque este următoarea:
Deque d = new ArrayDeque();
ArrayDeque vă permite să utilizați funcționalitatea Deque. Spre deosebire de alte colecții precum ArrayList sau stack, ArrayDeque nu are restricții asupra capacității sale.
Următorul exemplu arată implementarea 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); } } }
Ieșire:
În programul de mai sus, definim o colecție ArrayDeque de tip întreg și adăugăm elemente întregi folosind metoda add. Colecția este apoi parcursă folosind constructul for.
Setați interfața
Interfața setată face parte din pachetul java.util și se extinde de la interfața de colectare. Setul este o structură care nu permite colecției să aibă valori duplicate și, de asemenea, mai mult de o valoare nulă.
Următoarele clase implementează interfața setată.
- HashSet
- LinkedHashSet
- TreeSet
# 1) HashSet
Colecția HashSet care implementează interfața Set are valori distincte stocate în ea. Această colecție folosește tehnica hash pentru a stoca articolele și folosește tabelul hash pentru stocarea elementelor.
T Definiția generală a colecției HashSet este prezentată mai jos.
Set s1 = new HashSet();
Am dat implementarea HashSet în următorul program.
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()); } } }
Ieșire:
În programul de mai sus, creăm o colecție de subiecte HashSet și apoi o traversăm folosind un iterator pentru a afișa elementele din colecție.
# 2) LinkedHashSet
LinkedHashSet implementează o interfață setată și extinde HashSet (consulta ierarhia colecției). LinkedHashSet este reprezentarea listei legate a setului de interfață. LinkedHashSet conține elemente unice, dar permite valori nule.
Definiția generală a LinkedHashSet este dată mai jos.
Set s2 = new LinkedHashSet();
Implementarea pentru LinkedHashSet este dată mai jos.
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()); } } }
Ieșire:
Încă o dată folosim titlurile cărților pentru crearea Linkedhashset. După cum puteți vedea din ieșire, ordinea adăugării este menținută de linkedHashSet.
Interfață SortedSet
Interfața SortedSet permite ordonarea completă a elementelor. Conține metode care asigură o ordonare naturală a elementelor. Elementele din colecție care implementează interfața SortedSet sunt aranjate în ordine crescătoare.
Clasa TreeSet este unul dintre exemplele care implementează interfața SortedSet.
Set de copaci
Definiția generală a setului de arbori este după cum urmează:
Set s3 = new TreeSet();
TreeSet implementează interfața SortedSet și conține elemente unice. Stocarea și recuperarea sunt destul de rapide și apoi elementele sunt aranjate în ordine crescătoare.
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() + ' '); } } }
Ieșire:
În programul de mai sus, am creat și adăugat numere impare la colecție folosind metode de adăugare. Apoi, folosind un iterator, vom scoate elementele din colecție.
Avantajele cadrului Java Collections
- Programare redusă: Cadrul Colecții vine cu toate interfețele și clasele care conțin metodele care pot permite programatorilor să scrie un program eficient. În acest fel, programatorul nu trebuie să se concentreze pe o programare prea mare.
- Metode și API coerente: Toate clasele au metode comune care acționează asupra datelor. Aceste API-uri sunt consistente pe parcursul orelor de curs și programatorul nu trebuie să-și facă griji că are prea multe metode diferite pentru fiecare clasă.
- Măriți viteza și precizia: Puteți scrie programe extrem de eficiente folosind un cadru de colectare și, de asemenea, programe mai rapide și precise, deoarece cadrul de colectare oferă funcționalitatea completă pentru implementarea structurilor de date și a colecțiilor.
- Facilitează refolosirea software-ului: Structurile de date și algoritmii cadrului de colectare Java sunt reutilizabile.
- Interoperabilitate între API-urile fără legătură: API-urile de colectare permit interoperabilitatea chiar și între API-urile fără legătură.
- Mai puține eforturi pentru a proiecta noi API-uri: Programatorii pot utiliza API-urile standard de colectare și pot proiecta noi API-uri pe baza acestora. Nu trebuie să se lupte pentru a scrie noi API-uri complete.
întrebări frecvente
# 1) La ce folosește un cadru de colecție în Java?
Răspuns: Cadrul de colectare oferă algoritmi prealabili, interfețe și clase care permit programatorilor să scrie programe extrem de eficiente care pot stoca și prelucra date.
# 2) De ce Colecția este un cadru?
Răspuns: Un cadru este o colecție reutilizabilă de clase, interfețe și algoritmi. Cadrul de colectare este, de asemenea, o colecție reutilizabilă de clase de structuri de date și algoritmi care operează pe aceste clase.
# 3) Ce este Java Collections API în Java?
Răspuns: API-ul Java colecții oferă interfețe și clase care pot fi extinse și implementate pentru a utiliza structuri de date care nu sunt altceva decât colecții.
# 4) Care este diferența dintre colecție și colecții în Java?
Răspuns: Colecția este o interfață de bază în cadrul colecției, în timp ce „colecțiile” este o clasă. Ambele fac parte din pachetul java.util.
**** Mai multe detalii și exemple de Java Collections Framework: ****
Comparație între listă, set și coadă:
Listă | A stabilit | Coadă |
---|---|---|
Ordinea de inserare este menținută | Ordinea de inserare nu este menținută în setul Hash | Ordinea de inserare este menținută. |
Poate conține elemente duplicate | Nu pot conține elemente duplicate | Poate conține elemente duplicate. |
Inserarea și eliminarea matricei se poate face pentru orice index. | Eliminați elementul specificat. | Doar ultimul element inserat poate fi evidențiat. De asemenea, inserarea elementelor are loc la sfârșit. |
Clasa Listă matrice
În matrice, alocarea memoriei este fixă. Dar în ArrayList, memoria poate fi alocată dinamic. Această clasă ArrayList menține ordinea de inserare și puteți insera elemente duplicate.
Programul demonstrativ pentru Array List:
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)); } }
Clasa LinkedList
Structura de date Listă legată conține noduri și acest nod va conține două părți:
- Date
- Trimitere la următorul element
Primul nod nu este un nod separat. Conține doar referința și se numește cap. Ultimul nod este nul.
Program demonstrativ:
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
Coadă
O coadă este structura de date first in first out (FIFO). Dacă apelați metoda de eliminare, întotdeauna primul element inserat va fi eliminat din coadă. Deci, Coada este utilizată în aplicația în timp real, unde datele trebuie recuperate în ordinea inserată.
Exemplu de program:
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); } }
Întrebări și răspunsuri de interviu pentru administratorul salesforce pentru experți
A stabilit
O colecție set nu va permite elemente duplicate. Puteți utiliza o structură de date setată, atunci când doriți să procesați colectarea datelor fără duplicare și când nu este necesar să mențineți ordinea de inserare.
Program demonstrativ:
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)); ; } }
Interfață MAP
- Când doriți colectarea proceselor de elemente cu perechea cheie și valoare, atunci puteți utiliza structura de date a hărții, deoarece harta este un obiect care poate asocia cheile la valori.
- O hartă nu poate conține chei duplicate.
- Implementările importante ale hărții sunt HashMap, Treemap, LinkedHashMap, HashTable.
Diferența dintre HashMap, Treemap, LinkedHashMap și HashTable:
HashMap TreeMap LinkedHashmap HashTable Cheile și valorile nul sunt permise Sunt permise numai valori nule. Taste și valori nule permise. Nu va permite cheile și valorile nule. Nu este sincronizat Nu este sincronizat Nu este sincronizat sincronizat Nu există nicio garanție pentru menținerea ordinii în iterație Sortarea se va face pe baza ordinii naturale. Ordinea de inserare va fi menținută Ordinea de inserare nu este menținută.
Program demonstrativ:
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); } }
Puncte cheie de remarcat:
- Listează, coadă, setează interfețele extinde interfața de colectare și această interfață de colectare are metode comune, cum ar fi adăugare, eliminare etc.
- Ordinea de inserare este menținută în listă și un set nu poate conține elemente duplicat. Coada este structura de date First in First Out.
- Harta va conține perechi de chei și valori. HashMap, Treemap, Hashtable, Linked HashMap sunt implementarea importantă a interfeței hărții.
Concluzie
Acest tutorial ne-a oferit o introducere în Java Collections Framework. Am atins pe scurt toate clasele și interfețele care fac parte din cadrul de colectare Java.
În tutorialele noastre ulterioare din această serie, vom afla în detaliu despre fiecare dintre aceste clase și interfețe.
Puteți explora mai multe despre Reflections în JAVA în viitorul nostru tutorial !!!
Lectură recomandată
- Tutorial de reflecție Java cu exemple
- Tutoriale detaliate pentru eclipsă pentru începători
- Tutorial Java SWING: Container, componente și gestionarea evenimentelor
- Tutorial JAVA pentru începători: peste 100 de cursuri video Java practice
- Modificatori de acces în Java - Tutorial cu exemple
- Java String cu buffer de șiruri și tutorial de generare de șiruri
- Introducere în limbajul de programare Java - Video Tutorial
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver