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:
- Interfețele și implementările sale, adică clasele
- 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.
Metode de interfață de colectare
Există multe metode declarate în interfața Collection. Acestea sunt după cum urmează:
Nu. | Metodă | Descriere |
---|---|---|
1 | public boolean add(E e) | Este folosit pentru a insera un element în această colecție. |
2 | public boolean addAll(Colecția c) | Este folosit pentru a insera elementele de colecție specificate în colecția invocată. |
3 | public boolean remove (element obiect) | Este folosit pentru a șterge un element din colecție. |
4 | public boolean removeAll(Colecția c) | Este folosit pentru a șterge toate elementele colecției specificate din colecția invocată. |
5 | boolean implicit removeIf(filtru predicat) | Este folosit pentru a șterge toate elementele colecției care satisfac predicatul specificat. |
6 | public boolean retainAll(Colecția c) | Este folosit pentru a șterge toate elementele colecției invocate, cu excepția colecției specificate. |
7 | dimensiune public int() | Returnează numărul total de elemente din colecție. |
8 | vidul public clar () | Îndepărtează numărul total de elemente din colecție. |
9 | public boolean conține (element obiect) | Este folosit pentru a căuta un element. |
10 | public boolean containsAll(Colecția c) | Este folosit pentru a căuta colecția specificată în colecție. |
unsprezece | public Iterator iterator() | Returnează un iterator. |
12 | obiect public[] toArray() | Acesta convertește colecția în matrice. |
13 | public T[] toArray(T[] a) | Acesta convertește colecția în matrice. Aici, tipul de rulare al matricei returnate este cel al matricei specificate. |
14 | public boolean isEmpty() | Verifică dacă colecția este goală. |
cincisprezece | Stream implicit parallelStream() | Returnează un flux posibil paralel cu colecția ca sursă. |
16 | Flux de flux implicit() | Returnează un flux secvenţial cu colecţia ca sursă. |
17 | Spliterator implicit spliterator() | Acesta generează un Spliterator peste elementele specificate din colecție. |
18 | public boolean este egal (element obiect) | Se potrivește cu două colecții. |
19 | public 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 |
---|---|---|
1 | boolean public hasNext() | Returnează true dacă iteratorul are mai multe elemente, altfel returnează false. |
2 | Public Object next() | Returnează elementul și mută cursorul la următorul element. |
3 | public 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 VijayCe vom învăța în Java Collections Framework
- Clasa ArrayList
- Clasa LinkedList
- Interfață Listă
- Clasa HashSet
- Clasa LinkedHashSet
- Clasa TreeSet
- Clasa PriorityQueue
- Interfață pentru hartă
- Clasa HashMap
- Clasa LinkedHashMap
- Clasa TreeMap
- Clasa hashtable
- Triere
- Interfață comparabilă
- Interfață de comparație
- Clasa de proprietăți în Java