logo

Colecții în Java

  1. Cadrul de colecție Java
  2. Ierarhia cadrului de colectare
  3. Interfață de colecție
  4. Interfață iterator

The Colecție în Java este un cadru care oferă o arhitectură pentru stocarea și manipularea grupului de obiecte.

Colecțiile Java pot realiza toate operațiunile pe care le efectuați asupra datelor, cum ar fi căutarea, sortarea, inserarea, manipularea și ștergerea.

Colecția Java înseamnă o singură unitate de obiecte. Cadrul Java Collection oferă multe interfețe (Set, List, Queue, Deque) și clase ( ArrayList , Vector, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).

Ce este Colectarea în Java

O colecție reprezintă o singură unitate de obiecte, adică un grup.

Ce este un framework în Java

  • Oferă arhitectură gata făcută.
  • Reprezintă un set de clase și interfețe.
  • Este optional.

Ce este cadrul de colectare

Cadrul Collection reprezintă o arhitectură unificată pentru stocarea și manipularea unui grup de obiecte. Are:

  1. Interfețele și implementările sale, adică clasele
  2. Algoritm

Știi?
  • Care sunt cele două moduri de a repeta elementele unei colecții?
  • Care este diferența dintre clasele ArrayList și LinkedList în cadrul de colecție?
  • Care este diferența dintre clasele ArrayList și Vector în cadrul de colecție?
  • Care este diferența dintre clasele HashSet și HashMap în cadrul de colecție?
  • Care este diferența dintre clasa HashMap și Hashtable?
  • Care este diferența dintre interfața Iterator și Enumeration în cadrul de colecție?
  • Cum putem sorta elementele unui obiect? Care este diferența dintre interfețele Comparabil și Comparator?
  • Ce înseamnă metoda hashcode()?
  • Care este diferența dintre colecția Java și colecțiile Java?

Ierarhia cadrului de colectare

Să vedem ierarhia cadrului Collection. The java.util pachetul conține toate clase și interfețe pentru cadrul de colectare.

Ierarhia cadrului Java Collection

Metode de interfață de colectare

Există multe metode declarate în interfața Collection. Acestea sunt după cum urmează:

Nu.MetodăDescriere
1public boolean add(E e)Este folosit pentru a insera un element în această colecție.
2public boolean addAll(Colecția c)Este folosit pentru a insera elementele de colecție specificate în colecția invocată.
3public boolean remove (element obiect)Este folosit pentru a șterge un element din colecție.
4public boolean removeAll(Colecția c)Este folosit pentru a șterge toate elementele colecției specificate din colecția invocată.
5boolean implicit removeIf(filtru predicat)Este folosit pentru a șterge toate elementele colecției care satisfac predicatul specificat.
6public boolean retainAll(Colecția c)Este folosit pentru a șterge toate elementele colecției invocate, cu excepția colecției specificate.
7dimensiune public int()Returnează numărul total de elemente din colecție.
8vidul public clar ()Îndepărtează numărul total de elemente din colecție.
9public boolean conține (element obiect)Este folosit pentru a căuta un element.
10public boolean containsAll(Colecția c)Este folosit pentru a căuta colecția specificată în colecție.
unsprezecepublic Iterator iterator()Returnează un iterator.
12obiect public[] toArray()Acesta convertește colecția în matrice.
13public T[] toArray(T[] a)Acesta convertește colecția în matrice. Aici, tipul de rulare al matricei returnate este cel al matricei specificate.
14public boolean isEmpty()Verifică dacă colecția este goală.
cincisprezeceStream implicit parallelStream()Returnează un flux posibil paralel cu colecția ca sursă.
16Flux de flux implicit()Returnează un flux secvenţial cu colecţia ca sursă.
17Spliterator implicit spliterator()Acesta generează un Spliterator peste elementele specificate din colecție.
18public boolean este egal (element obiect)Se potrivește cu două colecții.
19public int hashCode()Returnează numărul de cod hash al colecției.

Interfață iterator

Interfața Iterator oferă posibilitatea de a repeta elementele numai în direcția înainte.

Metode de interfață Iterator

Există doar trei metode în interfața Iterator. Sunt:

Nu.MetodăDescriere
1boolean public hasNext()Returnează true dacă iteratorul are mai multe elemente, altfel returnează false.
2Public Object next()Returnează elementul și mută cursorul la următorul element.
3public void remove()Îndepărtează ultimele elemente returnate de iterator. Este mai puțin folosit.

Interfață iterabilă

Interfața Iterable este interfața rădăcină pentru toate clasele de colecție. Interfața Collection extinde interfața Iterable și, prin urmare, toate subclasele interfeței Collection implementează și interfața Iterable.

Conține o singură metodă abstractă. adică,

 Iterator iterator() 

Returnează iteratorul peste elementele de tip T.

string tokenizer java

Interfață de colecție

Interfața de colecție este interfața care este implementată de toate clasele din cadrul de colecție. Declară metodele pe care le va avea fiecare colecție. Cu alte cuvinte, putem spune că interfața Collection construiește fundația de care depinde cadrul de colectare.

Unele dintre metodele interfeței Collection sunt Boolean add ( Object obj), Boolean addAll ( Collection c), void clear(), etc. care sunt implementate de toate subclasele interfeței Collection.


Interfață Listă

Interfața Listă este interfața copil a interfeței Collection. Inhibă o structură de date de tip listă în care putem stoca colecția ordonată de obiecte. Poate avea valori duplicate.

Interfața Listă este implementată de clasele ArrayList, LinkedList, Vector și Stack.

Pentru a instanția interfața Listă, trebuie să folosim:

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

Există diferite metode în interfața Listă care pot fi folosite pentru a insera, șterge și accesa elementele din listă.

Clasele care implementează interfața List sunt prezentate mai jos.


ArrayList

Clasa ArrayList implementează interfața List. Utilizează o matrice dinamică pentru a stoca elementul duplicat al diferitelor tipuri de date. Clasa ArrayList menține ordinea de inserare și este nesincronizată. Elementele stocate în clasa ArrayList pot fi accesate aleatoriu. Luați în considerare următorul exemplu.

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

Ieșire:

 Ravi Vijay Ravi Ajay 

LinkedList

LinkedList implementează interfața Collection. Folosește o listă dublu legată în interior pentru a stoca elementele. Poate stoca elementele duplicate. Menține ordinea de inserare și nu este sincronizat. În LinkedList, manipularea este rapidă, deoarece nu este necesară schimbarea.

Luați în considerare următorul exemplu.

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

Ieșire:

 Ravi Vijay Ravi Ajay 

Vector

Vector folosește o matrice dinamică pentru a stoca elementele de date. Este similar cu ArrayList. Cu toate acestea, este sincronizat și conține multe metode care nu fac parte din cadrul Collection.

Luați în considerare următorul exemplu.

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

Ieșire:

 Ayush Amit Ashish Garima 

Grămadă

Stiva este subclasa Vector. Implementează structura de date last-in-first-out, adică stiva. Stiva conține toate metodele clasei Vector și oferă, de asemenea, metodele sale precum boolean push(), boolean peek(), boolean push(obiect o), care îi definește proprietățile.

Luați în considerare următorul exemplu.

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

Ieșire:

 Ayush Garvit Amit Ashish 

Interfață coadă

Interfața coadă menține ordinea primul intrat, primul ieșit. Poate fi definită ca o listă ordonată care este utilizată pentru a păstra elementele care urmează să fie procesate. Există diverse clase precum PriorityQueue, Deque și ArrayDeque care implementează interfața Queue.

Interfața coadă poate fi instanțiată ca:

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

Există diverse clase care implementează interfața Queue, unele dintre ele sunt prezentate mai jos.


PriorityQueue

Clasa PriorityQueue implementează interfața Queue. Deține elementele sau obiectele care urmează să fie procesate de prioritățile lor. PriorityQueue nu permite stocarea valorilor nule în coadă.

Luați în considerare următorul exemplu.

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

Ieșire:

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

Și interfața

Interfața Deque extinde interfața Queue. În Deque, putem elimina și adăuga elemente din ambele părți. Deque reprezintă o coadă cu două capete, care ne permite să efectuăm operațiunile la ambele capete.

Deque poate fi instanțiat ca:

 Deque d = new ArrayDeque(); 

ArrayDeque

Clasa ArrayDeque implementează interfața Deque. Ne facilitează utilizarea Deque. Spre deosebire de coada, putem adăuga sau șterge elementele de la ambele capete.

ArrayDeque este mai rapid decât ArrayList și Stack și nu are restricții de capacitate.

Luați în considerare următorul exemplu.

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

Ieșire:

 Gautam Karan Ajay 

Setați interfața

Set Interface în Java este prezent în pachetul java.util. Extinde interfața Collection. Reprezintă setul neordonat de elemente care nu ne permite să stocăm elementele duplicat. Putem stoca cel mult o valoare nulă în Set. Set este implementat de HashSet, LinkedHashSet și TreeSet.

Setul poate fi instanțiat ca:

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

HashSet

Clasa HashSet implementează Set Interface. Reprezintă colecția care folosește un tabel hash pentru stocare. Hashing este folosit pentru a stoca elementele în HashSet. Conține articole unice.

Luați în considerare următorul exemplu.

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

Ieșire:

 Vijay Ravi Ajay 

LinkedHashSet

Clasa LinkedHashSet reprezintă implementarea LinkedList a Set Interface. Extinde clasa HashSet și implementează interfața Set. La fel ca HashSet, conține și elemente unice. Menține ordinea de inserare și permite elemente nule.

Luați în considerare următorul exemplu.

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

Ieșire:

 Ravi Vijay Ajay 

Interfață SortedSet

SortedSet este interfața alternativă a Set care oferă o ordonare totală a elementelor sale. Elementele SortedSet sunt aranjate în ordine crescătoare (crescătoare). SortedSet oferă metode suplimentare care inhibă ordonarea naturală a elementelor.

SortedSet poate fi instanțiat ca:

 SortedSet set = new TreeSet(); 

TreeSet

Clasa Java TreeSet implementează interfața Set care utilizează un arbore pentru stocare. La fel ca HashSet, TreeSet conține și elemente unice. Cu toate acestea, timpul de acces și de preluare a TreeSet este destul de rapid. Elementele din TreeSet sunt stocate în ordine crescătoare.

Luați în considerare următorul exemplu:

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

Ieșire:

 Ajay Ravi Vijay 
Ce vom învăța în Java Collections Framework
  1. Clasa ArrayList
  2. Clasa LinkedList
  3. Interfață Listă
  4. Clasa HashSet
  5. Clasa LinkedHashSet
  6. Clasa TreeSet
  7. Clasa PriorityQueue
  8. Interfață pentru hartă
  9. Clasa HashMap
  10. Clasa LinkedHashMap
  11. Clasa TreeMap
  12. Clasa hashtable
  13. Triere
  14. Interfață comparabilă
  15. Interfață de comparație
  16. Clasa de proprietăți în Java