logo

Zbirke v Javi

  1. Ogrodje zbirke Java
  2. Hierarhija zbirnega okvira
  3. Zbirni vmesnik
  4. Vmesnik iteratorja

The Zbirka v Javi je ogrodje, ki zagotavlja arhitekturo za shranjevanje in upravljanje skupine objektov.

Zbirke Java lahko dosežejo vse operacije, ki jih izvajate na podatkih, kot so iskanje, razvrščanje, vstavljanje, manipulacija in brisanje.

Zbirka Java pomeni eno samo enoto objektov. Ogrodje Java Collection ponuja številne vmesnike (Set, List, Queue, Deque) in razrede ( ArrayList , vektor, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).

Kaj je zbirka v Javi

Zbirka predstavlja eno samo enoto predmetov, to je skupino.

Kaj je okvir v Javi

  • Zagotavlja pripravljeno arhitekturo.
  • Predstavlja nabor razredov in vmesnikov.
  • To ni obvezno.

Kaj je okvir zbirke

Ogrodje zbirke predstavlja enotno arhitekturo za shranjevanje in upravljanje skupine predmetov. Ima:

  1. Vmesniki in njihove izvedbe, tj. razredi
  2. Algoritem

Ali veš?
  • Katera sta dva načina za ponavljanje elementov zbirke?
  • Kakšna je razlika med razredoma ArrayList in LinkedList v okviru zbirke?
  • Kakšna je razlika med razredi ArrayList in Vector v zbirnem okviru?
  • Kakšna je razlika med razredoma HashSet in HashMap v okviru zbirke?
  • Kakšna je razlika med razredom HashMap in Hashtable?
  • Kakšna je razlika med vmesnikom Iterator in Enumeration v zbirnem okviru?
  • Kako lahko razvrstimo elemente predmeta? Kakšna je razlika med vmesnikoma Comparable in Comparator?
  • Kaj pomeni metoda hashcode()?
  • Kakšna je razlika med zbirko Java in zbirkami Java?

Hierarhija zbirnega okvira

Poglejmo si hierarhijo ogrodja zbirke. The java.util paket vsebuje vse razredi in vmesniki za okvir zbirke.

Hierarhija ogrodja zbirke Java

Metode vmesnika zbiranja

V vmesniku zbirke je deklariranih veliko metod. So naslednji:

št.MetodaOpis
1javni logični dodatek (E e)Uporablja se za vstavljanje elementa v to zbirko.
2javna logična vrednost addAll(zbirka c)Uporablja se za vstavljanje podanih elementov zbirke v klicajočo zbirko.
3javno logično odstranjevanje (element predmeta)Uporablja se za brisanje elementa iz zbirke.
4public boolean removeAll(Collection c)Uporablja se za brisanje vseh elementov podane zbirke iz klicajoče zbirke.
5privzeta logična vrednost RemoveIf(predikatni filter)Uporablja se za brisanje vseh elementov zbirke, ki ustrezajo podanemu predikatu.
6javna logična vrednost retainAll(zbirka c)Uporablja se za brisanje vseh elementov priklicne zbirke razen navedene zbirke.
7public int size()Vrne skupno število elementov v zbirki.
8public void clear()Iz zbirke odstrani skupno število elementov.
9javna logična vrednost vsebuje (predmetni element)Uporablja se za iskanje elementa.
10javna logična vrednost vsebujeVse(Zbirka c)Uporablja se za iskanje določene zbirke v zbirki.
enajstjavni iterator iterator()Vrne iterator.
12public Object[] toArray()Zbirko pretvori v matriko.
13public T[] toArray(T[] a)Zbirko pretvori v matriko. Tu je vrsta izvajalnega časa vrnjene matrike navedena matrika.
14javni logični isEmpty()Preveri, ali je zbirka prazna.
petnajstprivzeti tok parallelStream()Vrne po možnosti vzporedni tok z zbirko kot virom.
16privzeti Stream stream()Vrne zaporedni tok z zbirko kot izvorom.
17privzeti razdelilnik spliterator()Ustvari razdelilnik nad navedenimi elementi v zbirki.
18javna logična vrednost je enaka (element predmeta)Ujema se z dvema zbirkama.
19public int hashCode()Vrne številko zgoščene kode zbirke.

Vmesnik iteratorja

Vmesnik iteratorja omogoča ponavljanje elementov samo v smeri naprej.

Metode vmesnika Iterator

V vmesniku Iterator so samo tri metode. To so:

št.MetodaOpis
1javna logična vrednost hasNext()Vrne true, če ima iterator več elementov, sicer vrne false.
2javni objekt next()Vrne element in premakne kazalec kurzorja na naslednji element.
3javna praznina odstrani()Odstrani zadnje elemente, ki jih vrne iterator. Je manj rabljen.

Ponovljiv vmesnik

Vmesnik Iterable je korenski vmesnik za vse razrede zbirke. Vmesnik Collection razširja vmesnik Iterable in zato vsi podrazredi vmesnika Collection prav tako izvajajo vmesnik Iterable.

Vsebuje samo eno abstraktno metodo. tj.

 Iterator iterator() 

Vrne iterator nad elementi tipa T.

25 od 100

Zbirni vmesnik

Vmesnik zbirke je vmesnik, ki ga izvajajo vsi razredi v ogrodju zbirke. Izjavlja metode, ki jih bo imela vsaka zbirka. Z drugimi besedami, lahko rečemo, da vmesnik zbirke gradi osnovo, od katere je odvisno ogrodje zbirke.

Nekatere metode vmesnika Collection so Boolean add ( Object obj), Boolean addAll ( Collection c), void clear() itd., ki jih izvajajo vsi podrazredi vmesnika Collection.


Seznam vmesnika

Vmesnik seznama je podrejeni vmesnik vmesnika zbirke. Zavira podatkovno strukturo vrste seznama, v katero lahko shranimo urejeno zbirko objektov. Lahko ima podvojene vrednosti.

Vmesnik seznama izvajajo razredi ArrayList, LinkedList, Vector in Stack.

Za instanciranje vmesnika List moramo uporabiti:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

V vmesniku seznama obstajajo različne metode, ki jih je mogoče uporabiti za vstavljanje, brisanje in dostop do elementov s seznama.

Spodaj so navedeni razredi, ki izvajajo vmesnik List.


ArrayList

Razred ArrayList izvaja vmesnik List. Uporablja dinamično polje za shranjevanje podvojenih elementov različnih vrst podatkov. Razred ArrayList vzdržuje vrstni red vstavljanja in ni sinhroniziran. Do elementov, shranjenih v razredu ArrayList, je mogoče naključno dostopati. Razmislite o naslednjem primeru.

 import java.util.*; class TestJavaCollection1{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Ravi');//Adding object in arraylist list.add('Vijay'); list.add('Ravi'); list.add('Ajay'); //Traversing list through Iterator Iterator itr=list.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ravi Vijay Ravi Ajay 

LinkedList

LinkedList implementira vmesnik Collection. Interno uporablja dvojno povezan seznam za shranjevanje elementov. Lahko shrani podvojene elemente. Ohranja vrstni red vstavljanja in ni sinhroniziran. V LinkedList je manipulacija hitra, ker ni potrebno premikanje.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection2{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ravi Vijay Ravi Ajay 

Vektor

Vektor uporablja dinamično polje za shranjevanje podatkovnih elementov. Podobno je ArrayList. Vendar je sinhroniziran in vsebuje številne metode, ki niso del ogrodja zbirke.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection3{ public static void main(String args[]){ Vector v=new Vector(); v.add('Ayush'); v.add('Amit'); v.add('Ashish'); v.add('Garima'); Iterator itr=v.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ayush Amit Ashish Garima 

Stack

Sklad je podrazred vektorja. Implementira podatkovno strukturo zadnji-v-prvi-ven, tj. sklad. Sklad vsebuje vse metode razreda Vector in ponuja tudi njegove metode, kot so boolean push(), boolean peek(), boolean push(object o), ki definira njegove lastnosti.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection4{ public static void main(String args[]){ Stack stack = new Stack(); stack.push('Ayush'); stack.push('Garvit'); stack.push('Amit'); stack.push('Ashish'); stack.push('Garima'); stack.pop(); Iterator itr=stack.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ayush Garvit Amit Ashish 

Vmesnik čakalne vrste

Vmesnik čakalne vrste ohranja vrstni red prvi vstopi prvi ven. Lahko ga definiramo kot urejen seznam, ki se uporablja za shranjevanje elementov, ki bodo kmalu obdelani. Obstajajo različni razredi, kot so PriorityQueue, Deque in ArrayDeque, ki izvajajo vmesnik čakalne vrste.

Vmesnik čakalne vrste je mogoče instancirati kot:

 Queue q1 = new PriorityQueue(); Queue q2 = new ArrayDeque(); 

Obstajajo različni razredi, ki izvajajo vmesnik čakalne vrste, nekateri od njih so podani spodaj.


PriorityQueue

Razred PriorityQueue implementira vmesnik čakalne vrste. Vsebuje elemente ali predmete, ki jih je treba obdelati glede na njihove prioritete. PriorityQueue ne dovoljuje shranjevanja ničelnih vrednosti v čakalno vrsto.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection5{ public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); queue.add('Amit Sharma'); queue.add('Vijay Raj'); queue.add('JaiShankar'); queue.add('Raj'); System.out.println('head:'+queue.element()); System.out.println('head:'+queue.peek()); System.out.println('iterating the queue elements:'); Iterator itr=queue.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } queue.remove(); queue.poll(); System.out.println('after removing two elements:'); Iterator itr2=queue.iterator(); while(itr2.hasNext()){ System.out.println(itr2.next()); } } } 

Izhod:

 head:Amit Sharma head:Amit Sharma iterating the queue elements: Amit Sharma Raj JaiShankar Vijay Raj after removing two elements: Raj Vijay Raj 

In vmesnik

Vmesnik Deque razširja vmesnik čakalne vrste. V Dequeju lahko odstranjujemo in dodajamo elemente z obeh strani. Deque pomeni dvojno končano čakalno vrsto, ki nam omogoča izvajanje operacij na obeh koncih.

Deque je mogoče instancirati kot:

 Deque d = new ArrayDeque(); 

ArrayDeque

Razred ArrayDeque izvaja vmesnik Deque. Olajša nam uporabo Deque. Za razliko od čakalne vrste lahko dodajamo ali brišemo elemente z obeh koncev.

ArrayDeque je hitrejši od ArrayList in Stack in nima omejitev glede zmogljivosti.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection6{ public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Gautam'); deque.add('Karan'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } } 

Izhod:

 Gautam Karan Ajay 

Nastavite vmesnik

Set Interface v Javi je prisoten v paketu java.util. Razširja vmesnik zbirke. Predstavlja neurejen nabor elementov, ki nam ne dovoljuje shranjevanja podvojenih elementov. V Set lahko shranimo največ eno ničelno vrednost. Set izvajajo HashSet, LinkedHashSet in TreeSet.

Nabor je mogoče instancirati kot:

 Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet(); 

HashSet

Razred HashSet izvaja vmesnik Set. Predstavlja zbirko, ki za shranjevanje uporablja zgoščeno tabelo. Zgoščevanje se uporablja za shranjevanje elementov v HashSet. Vsebuje unikatne predmete.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection7{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Vijay Ravi Ajay 

LinkedHashSet

Razred LinkedHashSet predstavlja implementacijo vmesnika Set Interface LinkedList. Razširja razred HashSet in implementira vmesnik Set. Tako kot HashSet vsebuje tudi edinstvene elemente. Ohranja vrstni red vstavljanja in dovoljuje ničelne elemente.

Razmislite o naslednjem primeru.

 import java.util.*; public class TestJavaCollection8{ public static void main(String args[]){ LinkedHashSet set=new LinkedHashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ravi Vijay Ajay 

Vmesnik SortedSet

SortedSet je nadomestek vmesnika Set, ki zagotavlja skupno vrstni red svojih elementov. Elementi SortedSet so razporejeni v naraščajočem (naraščajočem) vrstnem redu. SortedSet zagotavlja dodatne metode, ki zavirajo naravno razvrščanje elementov.

SortedSet je mogoče instancirati kot:

 SortedSet set = new TreeSet(); 

TreeSet

Razred Java TreeSet implementira vmesnik Set, ki za shranjevanje uporablja drevo. Tako kot HashSet tudi TreeSet vsebuje edinstvene elemente. Vendar pa je čas dostopa in priklica TreeSet precej hiter. Elementi v TreeSet so shranjeni v naraščajočem vrstnem redu.

Razmislite o naslednjem primeru:

 import java.util.*; public class TestJavaCollection9{ public static void main(String args[]){ //Creating and adding elements TreeSet set=new TreeSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Izhod:

 Ajay Ravi Vijay 
Kaj se bomo naučili v Java Collections Framework
  1. Razred ArrayList
  2. Razred LinkedList
  3. Seznam vmesnika
  4. Razred HashSet
  5. Razred LinkedHashSet
  6. Razred TreeSet
  7. Razred PriorityQueue
  8. Vmesnik zemljevida
  9. Razred HashMap
  10. Razred LinkedHashMap
  11. razred TreeMap
  12. Razred zgoščene tabele
  13. Razvrščanje
  14. Primerljiv vmesnik
  15. Vmesnik primerjalnika
  16. Razred lastnosti v Javi