java collections framework tutorial
Ta vadnica podrobno pojasnjuje Okvir zbirk Java (JCF), skupaj s hierarhijo zbirk, različnimi vmesniki in prednostmi JCF:
Upam, da te zgovorne vadnice o tem Java Series za začetnike so resnično v pomoč pri obogatitvi vašega znanja Java.
Naša prejšnja vadnica je podrobneje predstavila osnovne I / O operacije v Javi . V tej vadnici bomo podrobno spoznali Okvir zbirk Java (JCF).
Java Collections Framework (JCF) vsebuje vmesnike, abstraktne razrede in razrede, ki lahko nudijo arhitekturo za shranjevanje in upravljanje skupine predmetov.
Kaj se boste naučili:
- Video vaje o ogrodju zbirk Java
- Zaključek
Video vaje o ogrodju zbirk Java
Znanje arraylista v Javi:
Nastavite vmesnik in vmesnik čakalne vrste v Javi s primeri v realnem času:
HashMap, TreeMap in HashTable v Javi:
Do zdaj smo videli spremenljivke, ki shranjujejo različne vrste podatkov. To so edinstvene enote in niso zelo koristne, če imate na voljo ogromno podatkov za shranjevanje in obdelavo. Kot vemo, so podatki najpomembnejša sestavina računalniške obdelave.
Vaša aplikacija mora biti sposobna pridobivati in zbirati podatke, jih obdelovati, da bi ugotovila koristne informacije, in jih tudi posredovati sem ter tja, da se lahko učinkovito uporablja za iskanje rešitev.
V tem svetu programske opreme shranjujemo podatke, ki jih je treba strukturirati na poseben način, tako da lahko programi shranjujejo, berejo, obdelujejo in na koncu prikažejo rezultate. To se naredi z uporabo podatkovnih struktur.
Skoraj vsi programski jeziki podpirajo podatkovne strukture. Strukturo podatkov lahko definiramo kot strukturirano predstavitev podatkov. Programski jeziki zagotavljajo funkcije API (Application Programming Interface) za upravljanje podatkovnih struktur.
Okvir za potrebe po zbiranju
Pred Java 1.2 je programski jezik Java podpiral podatkovne strukture, kot so nizi, vektorji ali hash tabele. Izvajanje operacij na teh podatkovnih strukturah ni bilo enostavno, saj ni bilo skupnega vmesnika, ki bi deloval na teh podatkovnih strukturah.
Programerji so včasih težko pisali algoritme, ki bi delovali za vse podatkovne strukture, kar je predstavljalo veliko težav. Potreben je bil skupen vmesnik, ki bi deloval dosledno na vseh podatkovnih strukturah in tudi učinkovito izvajal operacije.
Kasneje je Java pripravila ogrodje zbirk, ki je skupina razredov in vmesnikov, sestavljenih iz različnih operacij, ki jih je mogoče izvajati na podatkovnih strukturah.
V tej vadnici Java Collections bomo razpravljali o okolju Java Collections Framework na splošno. V naslednjih vajah bomo raziskali vsako komponento zbirke.
Okvir Java Collections
Preden določimo Java Collections Framework, spoznajmo pomen zbirke in ogrodja.
Zbirko lahko definiramo kot skupino predmetov. Zbirka je običajno ena sama enota, ki jo sestavlja več predmetov. Okvir je programska oprema, ki ima pripravljen funkcionalni vmesnik ali arhitekturo in vsebuje tudi niz razredov in vmesnikov, ki se uporabljajo s priloženim vmesnikom.
Okvir zbirk je opredeljen kot enotna, pripravljena arhitektura, sestavljena iz spodaj.
# 1) Algoritmi
To so metode ali niz izjav, ki lahko programerjem pomagajo pri iskanju, razvrščanju in obdelavi zbranih podatkov. Zbirka je priložena vmesnikom, razredom in algoritmom.
Aplikacije, ki se razvijejo z dedovanjem zbirnega okvira, imajo dostop do teh algoritmov in uporabljajo že določene metode in postopke.
# 2) Vmesniki
Vmesniki v Javi omogočajo abstrakcijo izvedbe, tj.z uporabo vmesnikov uporabnik ni seznanjen s podrobnostmi izvedbe, lahko pa vidi samo metode in podatke, potrebne za pisanje aplikacije. Zbirni vmesnik ima veliko vmesnikov, ki jih programer lahko uporabi za pisanje lastnih razredov.
# 3) Predavanja
Razredi zbirnega okvira so podatkovne strukture, ki jih je mogoče implementirati v program. Ti razredi izvajajo vmesnik “Collection” in tako podedujejo vse metode in definicije vmesnika za zbiranje.
Okvir zbirke se uporablja za shranjevanje in upravljanje zbirke, ki je skupina predmetov.
Okvir za zbiranje Java sestavljajo visoko zmogljivi algoritmi, ki izvajajo standardne operacije, kot so iskanje, razvrščanje in obdelava. Ponuja različne standardne izvedbe, vključno z LinkedList, TreeSet in HashSet, za katere so na voljo vmesniki.
Nato razumemo hierarhijo zbirke Java.
Hierarhija zbirke Java
Vsi razredi in vmesniki, prikazani v spodnji hierarhiji zbirke Java, pripadajo paketu 'java.util. *'.
Kot je prikazano v zgornjem diagramu, je Java Collection Hierarchy sestavljena iz različnih razredov in vmesnikov. Kot lahko vidite, vsak razred podeduje iz vmesnika, vsi razredi in vmesniki pa podedujejo iz enega vmesnika za zbiranje.
Pogovorimo se o nekaterih pogostih metodah v zbirnem vmesniku, skupaj s kratkim uvodom o vsakem od razredov in vmesnikov, ki so prikazani v zgornji hierarhiji.
Zbirni vmesnik
Vmesnik zbirke je korenski vmesnik. Vsi razredi v zbirnem okviru izvajajo zbirni vmesnik. To pomeni, da bodo v zbirki metode deklarirane v vmesniku zbirke.
Nekatere metode vmesnika Collection so navedene spodaj.
Ne | Prototip metode | Opis |
---|---|---|
7. | privzeta logična vrednost removeIf (filter predikatov) | Iz zbirke odstranite vse elemente, ki izpolnjujejo dani predikatni 'filter'. |
eno | javna int velikost () | Vrne število elementov v dani zbirki. |
dva | javno prazno jasno () | Zbriše zbirko tako, da iz nje odstrani vse elemente. |
3. | javni logični dodatek (E e) | V zbirko vstavi element e. |
4. | public booleanaddAll (Zbirka c) | V zbirko vstavite vse elemente zbirke, podane s c. |
5. | javno logično odstranjevanje (element predmeta) | Iz zbirke izbriši element, podan z elementom. |
6. | javno boolean removeAll (Collectionc) | Odstranite zbirko c iz zbirke. |
8. | public booleanretainAll (Zbirka c) | Iz zbirke izbrišite vse elemente, razen tistih v navedeni zbirki c. |
9. | javni iterator iterator () | Vrni iterator za zbirko. |
10. | javni objekt () doArray () | Pretvorite zbirko v matriko. |
enajst | javni T () doArray (T () a) | Pretvorite zbirko v matriko z določeno vrsto vrnitve. |
12. | javni logični isEmpty () | Vrnite se, če je zbirka prazna ali ne. |
13. | javno logično vsebuje (element predmeta) | Preverite, ali zbirka vsebuje dani element (postopek iskanja). |
14. | public booleancontainsAll (Collectionc) | Preverite, ali zbirka znotraj vsebuje določeno zbirko c. |
petnajst | privzeti spliterator spliterator () | Vrne spliterator nad določeno zbirko. |
16. | public booleanequals (element predmeta) | Uporablja se za ujemanje dveh zbirk. |
17. | privzet tok Stream parallelStream () | Vrne vzporedni tok z uporabo zbirke kot vira. |
18. | privzeti Streamstream () | Vrne zaporedni tok z uporabo zbirke kot vira. |
19. | javni int hashCode () | Vrne številčno hashcode zbirke. |
Iterable vmesnik
Iterable vmesnik je tudi osnovni vmesnik zbirnega okvira. Vmesnik Collection, ki je nadrejeni vmesnik vseh drugih razredov, razširja vmesnik Iterable. Zato vsi razredi izvajajo zbirni vmesnik in vmesnik Iterable.
Iterable vmesnik ima samo en iterator metode (), ki vrne iterator (), s katerim lahko pregledujete elemente tipa T.
Iterator iterator ()
Iterator vmesnik
Vmesnik Iterator ponuja možnost ponovitve elementov v smeri naprej.
Sledijo metode, ki jih podpira ta vmesnik.
Ne | Prototip metode | Opis |
---|---|---|
eno | javni objekt naslednji () | Najprej vrne element, nato pa premakne kazalec, da kaže na naslednji element. |
dva | javno logično hasNext () | Preveri, ali ima iterator več elementov. |
3. | javna praznina odstrani () | Odstrani element, ki ga iterator na koncu vrne. |
List Interface
Vmesnik seznama podeduje zbirni vmesnik. Vmesnik seznama vsebuje podatkovne strukture, ki se uporabljajo za shranjevanje urejenih podatkov ali zbiranje predmetov. Te podatkovne strukture so vrste seznama. Te podatkovne strukture, ki izvajajo vmesnik seznama, imajo lahko podvojene vrednosti ali pa tudi ne.
Vmesnik seznama vsebuje metode, ki se uporabljajo za dostop, vstavljanje ali odstranjevanje elementov iz predmetov seznama.
Različni razredi, ki izvajajo vmesnik List, so naslednji:
katere naprave delujejo na osi 2
- ArrayList
- LinkedList
- Vektor
- Stack
Na kratko bomo obravnavali vsak od teh razredov. O naslednjih temah bomo podrobno razpravljali o vsakem od razredov zbirke.
# 1) ArrayList
ArrayList je najpreprostejša izvedba vmesnika List. ArrayList ohrani vrstni red vstavljanja in ni sinhroniziran.
Splošna opredelitev podatkovne strukture (zbirka) ArrayList je naslednja:
List list1= new ArrayList ();
Ko je seznam definiran, lahko za dodajanje elementov uporabite metodo »dodaj«. Upoštevajte, da je ArrayList interno uporabljal mehanizem dinamičnih nizov.
Oglejte si naslednje primere, ki ustvarjajo zbirko barv 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()); } } }
Izhod:
Zgornji program prikazuje predstavitev zbirke ArrayList. Zbirki dodamo barvne vrednosti in nato prehodimo po zbirki, da s pomočjo iteratorja prikažemo posamezne vrednosti v zbirki.
# 2) LinkedList
Zbirka LinkedList interno uporablja dvojno povezan mehanizem seznamov za shranjevanje elementov. Vsebuje lahko podvojene elemente. Postopki zbiranja LinkedList so hitrejši, saj premikanje elementov ni potrebno.
Splošna opredelitev ustvarjanja povezanega seznama je naslednja:
List list2 = new LinkedList ();
Naslednji program prikazuje zbirka povezanih imen števil .
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()); } } }
Izhod:
Tako ustvarimo povezan seznam in mu nato dodamo elemente po metodi ‘dodaj’. Nato s pomočjo iteratorja prehodimo povezani seznam in prikažemo vsak element.
# 3) Vektor
Vector je podoben ArrayList in uporablja dinamično matriko za shranjevanje elementov, kot je ArrayList. Toda Vector poleg zbirke podpira številne neodvisne metode, zaradi česar je boljša izbira, da je prednostna zbirka.
Splošna definicija za zbiranje vektorjev je:
List list3 = new Vector();
Upoštevajte, da čeprav vektorja in ArrayList uporabljata isti mehanizem dinamičnih nizov, sta vektorska elementa sinhronizirana.
Spodaj navedeni program Java prikazuje uporabo vektorjev v okviru zbiranja .
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()); } } }
Izhod:
V tem programu smo opredelili vektorsko zbirko, sestavljeno iz predmetov. Dodamo različne predmete in nato s pomočjo iteratorja izpišemo elemente.
# 4) Stack
Struktura podatkov skladov izvaja način vstavljanja elementov »zadnji v prvem ven« (LIFO). Sklop je podrazred vektorja razreda (glej diagram hierarhije zbirk zgoraj). Zbirka skladov poleg lastnih metod podpira tudi metode vektorskega zbiranja.
Splošna opredelitev zbirke skladov je:
List list4 = new Stack();
Naslednji program izvaja zbirko skladov .
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() + ' '); } } }
Izhod:
Kot lahko vidite v zgornji izvedbi, so novi elementi v sklad dodani z uporabo 'Potisnite' delovanje. Sklad ima eno vstopno točko, imenovano 'Top of stack', elementi pa so potisnjeni na sklad na vrhu. Tako je zadnji dodani element na vrhu sklada.
Tako kot dodajanje, se elementi odstranijo tudi z enega konca, tj. Z vrha sklada. Za odstranitev elementov se uporablja operacija 'pop'. Če torej pokličete pop (), bo element na vrhu sklada odstranjen.
V zgornji izhod vstavimo element 2, 4, 6,8,10 in nato pokličemo pop (), tako da je 10 odstranjen.
Vmesnik čakalne vrste
Zbirke, pridobljene iz vmesnika čakalne vrste, sledijo vrstnemu redu prvi v prvem (FIFO). Elementi so vstavljeni na enem koncu in odstranjeni na drugem koncu. Zato se zgodi, da je prvi vneseni element tisti element, ki je najprej odstranjen.
Spodaj so zbirke, ki podpirajo poizvedbeni vmesnik.
- PriorityQueue
- in vmesnik
- ArrayDeque
O vsakem od njih se na kratko pogovorimo.
vprašanja za milo in prijetne spletne storitve
# 1) PriorityQueue
V zbirki PriorityQueue se shranjeni elementi obdelujejo glede na njihove prioritete. V prednostni vrsti ni mogoče shraniti ničelnih vrednosti.
Splošna opredelitev prednostne čakalne vrste je naslednja:
Queue q1 = new PriorityQueue();
Spodnji program izvaja prednostno vrsto.
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() + ' '); } } }
Izhod:
Ponovno uporabljamo barve kot elemente prednostne čakalne vrste. V zgornjem programu smo uporabili metode add in remove za dodajanje elementov v čakalno vrsto in odstranjevanje elementov. Uporabljamo metodo peek (), ki vrne element, na katerega kaže v prednostni vrsti.
Na koncu se z uporabo iteratorja prikažejo elementi prednostne čakalne vrste.
# 2) vmesnik na dotik
Deque ali 'dvojna čakalna vrsta' je podatkovna struktura, ki vam omogoča dodajanje in odstranjevanje elementov z obeh koncev. Vmesnik deque v okviru zbirke Java, ki razširja vmesnik čakalne vrste.
Ponuja funkcionalnost deque in ima razred, ki ga podeduje ‘ArrayDeque’.
# 3) ArrayDeque
ArrayDeque izvaja vmesnik deque.
Splošna opredelitev ArrayDeque je naslednja:
Deque d = new ArrayDeque();
ArrayDeque vam omogoča uporabo funkcionalnosti Deque. Za razliko od drugih zbirk, kot sta ArrayList ali sklad, ArrayDeque nima omejitev glede svoje zmogljivosti.
Naslednji primer prikazuje izvajanje 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); } } }
Izhod:
V zgornjem programu definiramo zbirko ArrayDeque vrste integer in ji z metodo add dodamo celoštevilske elemente. Nato se zbirka preusmeri s pomočjo konstrukta for.
Nastavi vmesnik
Nastavljeni vmesnik je del paketa java.util in se razteza od zbirnega vmesnika. Set je struktura, ki zbirki ne omogoča podvojenih vrednosti in tudi več kot eno ničelno vrednost.
Naslednji razredi izvajajo nastavljeni vmesnik.
- HashSet
- LinkedHashSet
- TreeSet
# 1) HashSet
Zbirka HashSet, ki izvaja vmesnik Set, ima v sebi shranjene različne vrednosti. Ta zbirka uporablja tehniko razprševanja za shranjevanje elementov in uporablja razpršilno tabelo za shranjevanje elementov.
T Splošna definicija zbirke HashSet je prikazana spodaj.
Set s1 = new HashSet();
Implementacijo HashSet-a smo podali v naslednjem programu.
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()); } } }
Izhod:
V zgornjem programu ustvarimo zbirko predmetov HashSet in jo nato s pomočjo iteratorja prikažemo za prikaz elementov v zbirki.
# 2) LinkedHashSet
LinkedHashSet izvaja nastavljeni vmesnik in razširja HashSet (sklic na hierarhijo zbirke). LinkedHashSet je predstavitev povezanega seznama vmesnika Set. LinkedHashSet vsebuje edinstvene elemente, vendar dovoljuje ničelne vrednosti.
Splošna opredelitev LinkedHashSet je podana spodaj.
Set s2 = new LinkedHashSet();
Izvedba LinkedHashSet je podana spodaj.
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()); } } }
Izhod:
Ponovno uporabljamo naslove knjig za ustvarjanje Linkedhashseta. Kot lahko vidite iz izhoda, vrstni red dodajanja vzdržuje linkedHashSet.
Vmesnik SortedSet
Vmesnik SortedSet omogoča popolno razvrščanje elementov. Vsebuje metode, ki zagotavljajo naravno urejanje elementov. Elementi v zbirki, ki izvajajo vmesnik SortedSet, so razporejeni v naraščajočem vrstnem redu.
Razred TreeSet je eden od primerov, ki izvaja vmesnik SortedSet.
Drevesje
Splošna opredelitev Treeset je naslednja:
Set s3 = new TreeSet();
TreeSet izvaja vmesnik SortedSet in vsebuje edinstvene elemente. Shranjevanje in priklic sta precej hitra, nato pa so elementi razporejeni v naraščajočem vrstnem redu.
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() + ' '); } } }
Izhod:
V zgornjem programu smo z metodami add ustvarili in dodali lihe številke v zbirko. Nato z uporabo iteratorja izpišemo elemente v zbirki.
Prednosti okvira Java Collections
- Zmanjšano programiranje: Okvir Collections ima vse vmesnike in razrede, ki vsebujejo metode, ki programerjem omogočajo, da napišejo učinkovit program. Tako se programerju ni treba osredotočati na preveč programiranja.
- Skladne metode in API: Vsi razredi imajo skupne metode, ki delujejo na podatke. Ti API-ji so dosledni v vseh razredih in programerju ni treba skrbeti, da ima preveč različnih metod za vsak razred.
- Povečajte hitrost in natančnost: Z uporabo okvira za zbiranje lahko pišete zelo učinkovite programe, pa tudi hitrejše in natančnejše programe, saj okvir za zbiranje ponuja popolno funkcionalnost za izvajanje podatkovnih struktur in zbirk.
- Olajša ponovno uporabo programske opreme: Podatkovne strukture in algoritmi okvira za zbiranje Java so večkrat uporabni.
- Interoperabilnost med nepovezanimi API-ji: Zbirni API-ji omogočajo interoperabilnost tudi med nepovezanimi API-ji.
- Manj prizadevanj za oblikovanje novih API-jev: Programerji lahko uporabljajo standardne zbirke API-jev in na podlagi tega oblikujejo nove API-je. Ni jim treba truditi, da bi napisali popolne nove API-je.
Pogosto zastavljena vprašanja
# 1) Kakšna je uporaba zbirnega okvira v Javi?
Odgovor: Okvir zbirke ponuja predpakirane algoritme, vmesnike in razrede, ki programerjem omogočajo pisanje visoko učinkovitih programov, ki lahko shranjujejo in obdelujejo podatke.
# 2) Zakaj je Zbirka ogrodje?
Odgovor: Okvir je zbirka razredov, vmesnikov in algoritmov za večkratno uporabo. Okvir zbiranja je tudi zbirka razredov podatkovne strukture in algoritmov, ki delujejo na teh razredih, za večkratno uporabo.
# 3) Kaj je Java Collections API v Javi?
Odgovor: API zbirk Java ponuja vmesnike in razrede, ki jih je mogoče razširiti in implementirati, da se uporabljajo podatkovne strukture, ki niso nič drugega kot zbirke.
# 4) Kakšna je razlika med zbirko in zbirkami v Javi?
Odgovor: Zbirka je osnovni vmesnik v okviru zbirke, medtem ko je zbirka razred. Oba sta del paketa java.util.
**** Več podrobnosti in primeri okvira Java Collections: ****
Primerjava med seznamom, nizom in čakalno vrsto:
Seznam | Nastavite | Čakalna vrsta |
---|---|---|
Vrstni red za vstavljanje se ohrani | Vrstni red za vstavljanje se ne vzdržuje v naboru razpršitev | Vrstni red za vstavljanje se ohrani. |
Lahko vsebuje podvojene elemente | Ne more vsebovati podvojenih elementov | Lahko vsebuje podvojene elemente. |
Vstavljanje in odstranjevanje matrike je mogoče za kateri koli indeks. | Odstranite navedeni element. | Izpuščen je lahko samo zadnji vstavljeni element. Tudi vstavljanje elementov se zgodi na koncu. |
Razred seznama matrike
V Array je dodelitev pomnilnika fiksna. Toda v ArrayList je mogoče pomnilnik dodeliti dinamično. Ta razred ArrayList ohranja vrstni red vstavljanja in lahko vstavite podvojene elemente.
Predstavitveni program za seznam nizov:
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)); } }
Razred LinkedList
Struktura podatkov povezanega seznama vsebuje vozlišča in to vozlišče bo vsebovalo dva dela:
- Podatki
- Sklic na naslednji element
Prvo vozlišče ni ločeno vozlišče. Vsebuje samo sklic in se imenuje glava. Zadnje vozlišče je nič.
Predstavitveni program:
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 
Čakalna vrsta
Čakalna vrsta je prvi v strukturi podatkov (FIFO). Če pokličete metodo odstranitve, bo prvi vstavljeni element odstranjen iz čakalne vrste. Torej, Čakalna vrsta se uporablja v realnem času, kjer je treba podatke pridobiti v vstavljenem vrstnem redu.
Primer programa:
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); } }

Nastavite
Zbirka naborov ne bo dovoljevala podvojenih elementov. Nastavljeno podatkovno strukturo lahko uporabite, kadar želite obdelati zbiranje podatkov brez podvajanja in kadar ni treba vzdrževati vrstnega reda vstavljanja.
Predstavitveni program:
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)); ; } }

MAP vmesnik
- Ko želite zbirati elemente s parom ključ in vrednost, lahko uporabite strukturo podatkov zemljevida, saj je zemljevid objekt, ki lahko preslika ključe v vrednosti.
- Zemljevid ne sme vsebovati podvojenih ključev.
- Pomembne izvedbe zemljevida so HashMap, Treemap, LinkedHashMap, HashTable.
Razlika med HashMap, Treemap, LinkedHashMap in HashTable:
HashMap TreeMap LinkedHashmap HashTable Dovoljeni so ničelni ključi in vrednosti Dovoljene so samo ničelne vrednosti. Dovoljeni so ničelni ključi in vrednosti. Ne bo dovolil ničelnih ključev in vrednosti. Ni sinhronizirano Ni sinhronizirano Ni sinhronizirano sinhronizirano V iteraciji ni nobenega zagotovila za vzdrževanje reda Razvrščanje bo izvedeno po naravnem vrstnem redu. Vrstni red za vstavljanje bo ohranjen Vrstni red za vstavljanje ni bil ohranjen.
Predstavitveni program:
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); } }

Ključne točke, ki jih je treba upoštevati:
- List, Queue, set vmesniki razširjajo vmesnik zbiranja in ta vmesnik zbiranja ima skupne metode, kot so dodajanje, odstranjevanje itd.
- Vrstni red vstavljanja se ohrani na seznamu in nabor ne sme vsebovati podvojenih elementov. Čakalna vrsta je prva v strukturi podatkov First out.
- Zemljevid bo vseboval pare ključev in vrednosti. HashMap, Treemap, Hashtable, Link HashMap so pomembna izvedba vmesnika zemljevida.
Zaključek
Ta vadnica nam je predstavila okvir zbirke Java. Na kratko smo se dotaknili vseh razredov in vmesnikov, ki so del ogrodja zbirke Java.
V naslednjih vajah v tej seriji bomo podrobno izvedeli o vsakem od teh razredov in vmesnikov.
Več o Reflections in JAVA lahko raziščete v naši prihajajoči vadnici !!!
PREV Vadnica | NASLEDNJA Vadnica
Priporočeno branje
- Vadnica za odsev Java s primeri
- Vadnice za globinsko zasenčenje za začetnike
- Java SWING Vadnica: Vsebnik, komponente in obdelava dogodkov
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Dostopni modifikatorji v Javi - Vadnica s primeri
- Java String z vmesnikom String Buffer in String Builder
- Uvod v programski jezik Java - Video vadnica
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver