logo

Gyűjtemények Java nyelven

  1. Java Collection Framework
  2. Gyűjteményi keretrendszer hierarchiája
  3. Gyűjtemény felület
  4. Iterátor interfész

A Gyűjtemény Java nyelven egy olyan keretrendszer, amely architektúrát biztosít az objektumok csoportjának tárolására és manipulálására.

A Java-gyűjtemények minden olyan műveletet végrehajthatnak, amelyet az adatokon végez, például keresést, rendezést, beszúrást, manipulációt és törlést.

A Java Collection az objektumok egyetlen egységét jelenti. A Java Collection keretrendszer számos interfészt (Set, List, Queue, Deque) és osztályt ( Tömb lista , vektor, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).

Mi a Gyűjtemény a Java nyelven

A gyűjtemény az objektumok egyetlen egységét, azaz egy csoportot képvisel.

Mi az a keretrendszer a Java-ban

  • Kész architektúrát biztosít.
  • Osztályok és interfészek halmazát képviseli.
  • Ez nem kötelező.

Mi az a Gyűjtemény keretrendszer

A Gyűjtemény keretrendszer egy egységes architektúrát képvisel egy objektumcsoport tárolására és kezelésére. A következőket tartalmazza:

  1. Interfészek és megvalósításai, azaz osztályok
  2. Algoritmus

Tudod?
  • Mi a két módja a gyűjtemény elemeinek ismétlésének?
  • Mi a különbség az ArrayList és a LinkedList osztályok között a gyűjtési keretrendszerben?
  • Mi a különbség az ArrayList és a Vector osztályok között a gyűjteményi keretrendszerben?
  • Mi a különbség a HashSet és a HashMap osztályok között a gyűjtési keretrendszerben?
  • Mi a különbség a HashMap és a Hashtable osztály között?
  • Mi a különbség az Iterator és az Enumeration interfész között a gyűjteményi keretrendszerben?
  • Hogyan rendezhetjük egy objektum elemeit? Mi a különbség a Comparable és a Comparator interfészek között?
  • Mit jelent a hashcode() metódus?
  • Mi a különbség a Java gyűjtemény és a Java gyűjtemény között?

Gyűjteményi keretrendszer hierarchiája

Lássuk a Gyűjtemény keretrendszer hierarchiáját. A java.util csomag tartalmazza az összes osztályok és interfészek a Gyűjtemény kerethez.

A Java Collection keretrendszer hierarchiája

A gyűjtési felület módszerei

A Gyűjtemény felületén számos módszer van deklarálva. Ezek a következők:

Nem.MódszerLeírás
1nyilvános logikai hozzáadás(E e)Egy elem beszúrására szolgál ebbe a gyűjteménybe.
2public logikai addAll(c gyűjtemény)A megadott gyűjteményelemek beszúrására szolgál a meghívó gyűjteménybe.
3nyilvános logikai eltávolítás (objektum elem)Egy elem törlésére szolgál a gyűjteményből.
4publikus logikai eltávolítása(c gyűjtemény)A megadott gyűjtemény összes elemének törlésére szolgál a meghívó gyűjteményből.
5alapértelmezett logikai removeIf (predikátumszűrő)A gyűjtemény minden olyan elemének törlésére szolgál, amely megfelel a megadott predikátumnak.
6nyilvános logikai érték megtartja az összeset (c gyűjtemény)A megadott gyűjtemény kivételével a meghívó gyűjtemény összes elemének törlésére szolgál.
7publikus int méret()A gyűjtemény elemeinek teljes számát adja vissza.
8public void clear()Eltávolítja az elemek teljes számát a gyűjteményből.
9publikus logikai érték tartalmazza (Object elem)Egy elem keresésére szolgál.
10nyilvános logikai érték tartalmazza az összeset (c gyűjtemény)A megadott gyűjtemény keresésére szolgál a gyűjteményben.
tizenegypublic Iterator iterator()Egy iterátort ad vissza.
12nyilvános objektum[] toArray()A gyűjteményt tömbbé alakítja.
13public T[] toArray(T[] a)A gyűjteményt tömbbé alakítja. Itt a visszaadott tömb futásidejű típusa a megadott tömb futásidejű típusa.
14nyilvános logikai érték isEmpty()Ellenőrzi, hogy a gyűjtemény üres-e.
tizenötalapértelmezett Stream parallelStream()Egy esetlegesen párhuzamos Streamot ad vissza, forrásként a gyűjteményt.
16alapértelmezett Stream stream()Egy szekvenciális adatfolyamot ad vissza, amelynek forrása a gyűjtemény.
17alapértelmezett Spliterator spliterator()Elosztót hoz létre a gyűjtemény megadott elemei felett.
18publikus logikai egyenlő (Object elem)Két kollekcióhoz illik.
19public int hashCode()A gyűjtemény hash kódszámát adja vissza.

Iterátor interfész

Az iterátor interfész lehetőséget biztosít az elemek csak előrefelé történő iterálására.

Az Iterator interfész módszerei

Az Iterator felületén csak három módszer található. Ők:

Nem.MódszerLeírás
1publikus logikai hasNext()Igazat ad vissza, ha az iterátornak több eleme van, ellenkező esetben hamis értéket ad vissza.
2public Object next()Visszaadja az elemet, és a kurzormutatót a következő elemre mozgatja.
3public void eltávolítás()Eltávolítja az iterátor által visszaadott utolsó elemeket. Kevésbé használt.

Iterálható felület

Az Iterable felület az összes gyűjteményosztály gyökérfelülete. A Gyűjtemény interfész kiterjeszti az Iterable felületet, ezért a Gyűjtemény felület összes alosztálya megvalósítja az Iterable felületet is.

Csak egy absztrakt módszert tartalmaz. azaz.,

 Iterator iterator() 

Visszaadja az iterátort a T típusú elemek felett.

js letöltése

Gyűjtemény interfész

A Gyűjtemény felület az a felület, amelyet a gyűjteményi keretrendszer összes osztálya megvalósít. Ez deklarálja azokat a módszereket, amelyek minden gyűjteményben megtalálhatók lesznek. Más szóval azt mondhatjuk, hogy a Gyűjtemény felülete építi azt az alapot, amelyen a gyűjtési keretrendszer függ.

A Gyűjtemény interfész néhány metódusa a logikai add (Object obj), Boolean addAll (c gyűjtemény), void clear() stb., amelyeket a Gyűjtemény felület összes alosztálya megvalósít.


Lista interfész

A Lista felület a Gyűjtemény felület gyermekfelülete. Gátolja a lista típusú adatstruktúrát, amelyben tárolhatjuk az objektumok rendezett gyűjteményét. Duplikált értékei lehetnek.

A lista interfészt az ArrayList, LinkedList, Vector és Stack osztályok valósítják meg.

A Lista felület példányosításához a következőket kell használnunk:

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

A Lista felületen különféle módszerek állnak rendelkezésre, amelyek segítségével beszúrhatók, törölhetők és elérhetők a listából az elemek.

A Lista felületet megvalósító osztályok az alábbiakban láthatók.


Tömb lista

Az ArrayList osztály a List interfészt valósítja meg. Dinamikus tömböt használ a különböző adattípusok ismétlődő elemeinek tárolására. Az ArrayList osztály fenntartja a beillesztési sorrendet, és nincs szinkronizálva. Az ArrayList osztályban tárolt elemek véletlenszerűen elérhetők. Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Ravi Vijay Ravi Ajay 

LinkedList

A LinkedList megvalósítja a Gyűjtemény felületet. Az elemek belső tárolására duplán linkelt listát használ. Tárolhatja az ismétlődő elemeket. Megtartja a beillesztési sorrendet, és nincs szinkronizálva. A LinkedListben a manipuláció gyors, mivel nincs szükség eltolásra.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Ravi Vijay Ravi Ajay 

Vektor

A Vector dinamikus tömböt használ az adatelemek tárolására. Hasonló az ArrayList-hez. Ez azonban szinkronizált, és sok olyan módszert tartalmaz, amelyek nem részei a Collection keretrendszernek.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Ayush Amit Ashish Garima 

Kazal

A verem a Vector alosztálya. Az utolsó az elsőben adatszerkezetet, azaz a Stack-et valósítja meg. A verem tartalmazza a Vector osztály összes metódusát és olyan metódusait is, mint a logikai push(), boolean peek(), logikai push(object o), amely meghatározza a tulajdonságait.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Ayush Garvit Amit Ashish 

Sor interfész

A sor interfész fenntartja az első az elsőben sorrendet. Meghatározható egy rendezett listaként, amely a feldolgozás előtt álló elemek tárolására szolgál. Különféle osztályok léteznek, mint például a PriorityQueue, Deque és ArrayDeque, amelyek megvalósítják a Queue interfészt.

A sor interfész a következőképpen példányosítható:

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

Különféle osztályok valósítják meg a Queue felületet, ezek közül néhányat az alábbiakban mutatunk be.


PriorityQueue

A PriorityQueue osztály a Queue interfészt valósítja meg. Tartalmazza azokat az elemeket vagy objektumokat, amelyeket prioritásaik szerint kell feldolgozni. A PriorityQueue nem teszi lehetővé null értékek tárolását a sorban.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

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

És a felület

Deque interfész kiterjeszti a Queue felületet. A Deque-ben mindkét oldalról eltávolíthatjuk és hozzáadhatjuk az elemeket. A Deque egy kétvégű várólista, amely lehetővé teszi a műveletek mindkét végén történő végrehajtását.

A deque a következőképpen példányosítható:

 Deque d = new ArrayDeque(); 

ArrayDeque

Az ArrayDeque osztály a Deque interfészt valósítja meg. Ez megkönnyíti a Deque használatát. A queue-tól eltérően mindkét végén felvehetjük vagy törölhetjük az elemeket.

Az ArrayDeque gyorsabb, mint az ArrayList és a Stack, és nincsenek kapacitáskorlátozásai.

Tekintsük a következő példát.

 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); } } } 

Kimenet:

 Gautam Karan Ajay 

Interfész beállítása

A Set Interface in Java megtalálható a java.util csomagban. Kibővíti a Gyűjtemény felületét. Az elemek rendezetlen halmazát képviseli, amely nem teszi lehetővé az ismétlődő elemek tárolását. A Setben legfeljebb egy null értéket tárolhatunk. A készletet a HashSet, a LinkedHashSet és a TreeSet valósítja meg.

A készlet a következőképpen példányosítható:

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

HashSet

A HashSet osztály a Set Interface-t valósítja meg. Azt a gyűjteményt képviseli, amely hash táblát használ a tároláshoz. A kivonatolás az elemek tárolására szolgál a HashSetben. Egyedi elemeket tartalmaz.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Vijay Ravi Ajay 

LinkedHashSet

A LinkedHashSet osztály a Set Interface LinkedList megvalósítását képviseli. Kibővíti a HashSet osztályt és megvalósítja a Set interfészt. A HashSethez hasonlóan egyedi elemeket is tartalmaz. Fenntartja a beillesztési sorrendet, és engedélyezi a null elemeket.

Tekintsük a következő példát.

 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()); } } } 

Kimenet:

 Ravi Vijay Ajay 

SortedSet interfész

A SortedSet a Set interfész alternatívája, amely teljes sorrendet biztosít az elemeken. A SortedSet elemei növekvő (növekvő) sorrendbe vannak rendezve. A SortedSet további módszereket biztosít, amelyek gátolják az elemek természetes sorrendjét.

A SortedSet a következőképpen példányosítható:

 SortedSet set = new TreeSet(); 

TreeSet

A Java TreeSet osztály a Set felületet valósítja meg, amely fát használ a tároláshoz. A HashSethez hasonlóan a TreeSet is egyedi elemeket tartalmaz. A TreeSet elérési és visszakeresési ideje azonban meglehetősen gyors. A TreeSet elemei növekvő sorrendben tárolva.

Tekintsük a következő példát:

 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()); } } } 

Kimenet:

 Ajay Ravi Vijay 
Mit fogunk megtanulni a Java Collections Frameworkben
  1. ArrayList osztály
  2. LinkedList osztály
  3. Lista felület
  4. HashSet osztály
  5. LinkedHashSet osztály
  6. TreeSet osztály
  7. PriorityQueue osztály
  8. Térképes felület
  9. HashMap osztály
  10. LinkedHashMap osztály
  11. TreeMap osztály
  12. Hashtable osztály
  13. Válogatás
  14. Összehasonlítható felület
  15. Összehasonlító felület
  16. Properties osztály Java nyelven