logo

Kolekcijas Java valodā

  1. Java kolekcijas ietvars
  2. Kolekciju ietvara hierarhija
  3. Kolekcijas saskarne
  4. Iteratora interfeiss

The Kolekcija Java valodā ir ietvars, kas nodrošina arhitektūru objektu grupas glabāšanai un manipulēšanai ar to.

Java kolekcijas var veikt visas darbības, ko veicat ar datiem, piemēram, meklēšanu, kārtošanu, ievietošanu, manipulāciju un dzēšanu.

Java kolekcija nozīmē vienu objektu vienību. Java kolekcijas ietvars nodrošina daudzas saskarnes (iestatījums, saraksts, rinda, deque) un klases ( ArrayList , vektors, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).

Kas ir kolekcija Java valodā

Kolekcija apzīmē vienu objektu vienību, t.i., grupu.

Kas ir ietvars Java

  • Tas nodrošina gatavu arhitektūru.
  • Tas attēlo klašu un saskarņu kopu.
  • Tas nav obligāti.

Kas ir kolekcijas ietvars

Kolekcijas ietvars ir vienota arhitektūra objektu grupas glabāšanai un manipulēšanai. Tam ir:

  1. Saskarnes un to realizācijas, t.i., klases
  2. Algoritms

Vai Tu zini?
  • Kādi ir divi veidi, kā atkārtot kolekcijas elementus?
  • Kāda ir atšķirība starp ArrayList un LinkedList klasēm kolekcijas sistēmā?
  • Kāda ir atšķirība starp ArrayList un Vector klasēm kolekcijas sistēmā?
  • Kāda ir atšķirība starp HashSet un HashMap klasēm kolekcijas sistēmā?
  • Kāda ir atšķirība starp HashMap un Hashtable klasi?
  • Kāda ir atšķirība starp Iterator un Enumeration interfeisu kolekcijas sistēmā?
  • Kā mēs varam sakārtot objekta elementus? Kāda ir atšķirība starp salīdzināmo un salīdzināmo saskarni?
  • Ko nozīmē hashcode() metode?
  • Kāda ir atšķirība starp Java kolekciju un Java kolekcijām?

Kolekciju ietvara hierarhija

Apskatīsim kolekcijas struktūras hierarhiju. The java.util iepakojumā ir viss klases un saskarnes kolekcijas sistēmai.

Java kolekcijas ietvara hierarhija

Kolekcijas saskarnes metodes

Kolekcijas saskarnē ir norādītas daudzas metodes. Tie ir šādi:

Nē.MetodeApraksts
1publiska Būla pievienošana(E e)To izmanto, lai ievietotu elementu šajā kolekcijā.
2publiska Būla vērtība addAll (c kolekcija)To izmanto, lai ievietotu norādītos kolekcijas elementus izsaukšanas kolekcijā.
3publiska Būla noņemšana (Objekta elements)To izmanto, lai izdzēstu elementu no kolekcijas.
4publisks Būla noņemšana Visu (C kolekcija)To izmanto, lai izdzēstu visus norādītās kolekcijas elementus no izsaukšanas kolekcijas.
5noklusējuma Būla noņemšanaIf (predikātu filtrs)To izmanto, lai dzēstu visus kolekcijas elementus, kas atbilst norādītajam predikātam.
6publiska Būla vērtība saglabāt visu (c kolekcija)To izmanto, lai dzēstu visus izsaucošās kolekcijas elementus, izņemot norādīto kolekciju.
7publiskais int izmērs()Tas atgriež kopējo elementu skaitu kolekcijā.
8publisks tukšums skaidrs()Tas noņem no kolekcijas kopējo elementu skaitu.
9publiskais Būla saturs (Objekta elements)To izmanto elementa meklēšanai.
10publiskais Būla saturs satur visu (c kolekcija)To izmanto, lai meklētu norādīto kolekciju kolekcijā.
vienpadsmitpubliskais iteratora iterators()Tas atgriež iteratoru.
12publisks objekts[] toArray()Tas pārvērš kolekciju masīvā.
13publiskais T[] toMasīvs(T[] a)Tas pārvērš kolekciju masīvā. Šeit atgrieztā masīva izpildlaika veids ir norādītā masīva izpildlaika veids.
14publiskais Būla irEmpty()Tas pārbauda, ​​vai kolekcija ir tukša.
piecpadsmitnoklusējuma straume parallelStream()Tas atgriež, iespējams, paralēlu straumi, kuras avots ir kolekcija.
16noklusējuma straumes straume ()Tā atgriež secīgu straumi, kuras avots ir kolekcija.
17noklusējuma sadalītāja sadalītājs()Tas ģenerē sadalītāju virs norādītajiem kolekcijas elementiem.
18publiskais Būla vienāds (Objekta elements)Tas atbilst divām kolekcijām.
19publisks int hashCode()Tas atgriež kolekcijas jaucējkoda numuru.

Iteratora interfeiss

Iteratora saskarne nodrošina iespēju iterēt elementus tikai uz priekšu.

Iteratora saskarnes metodes

Iteratora saskarnē ir tikai trīs metodes. Viņi ir:

Nē.MetodeApraksts
1publiska Būla vērtība hasNext()Tas atgriež patiesu vērtību, ja iteratoram ir vairāk elementu, pretējā gadījumā tas atgriež false.
2publiskais objekts nākamais()Tas atgriež elementu un pārvieto kursora rādītāju uz nākamo elementu.
3publiskais spēkā esamības noņemšana ()Tas noņem pēdējos iteratora atgrieztos elementus. Tas ir mazāk izmantots.

Atkārtojams interfeiss

Iterable interfeiss ir saknes interfeiss visām kolekcijas klasēm. Kolekcijas interfeiss paplašina Iterable saskarni, un tāpēc visas kolekcijas saskarnes apakšklases ievieš arī Iterable saskarni.

Tas satur tikai vienu abstraktu metodi. i.,

 Iterator iterator() 

Tas atgriež iteratoru pār T tipa elementiem.

cik unces ir 10 mililitri

Kolekcijas saskarne

Kolekcijas saskarne ir saskarne, ko ievieš visas kolekcijas sistēmas klases. Tas deklarē metodes, kas būs katrai kolekcijai. Citiem vārdiem sakot, mēs varam teikt, ka kolekcijas saskarne veido pamatu, no kura ir atkarīga kolekcijas sistēma.

Dažas kolekcijas saskarnes metodes ir Būla pievienošana (Object obj), Būla addAll (Kolekcija c), void clear () utt., kuras īsteno visas kolekcijas saskarnes apakšklases.


Saraksta interfeiss

Saraksta interfeiss ir kolekcijas interfeisa bērnu interfeiss. Tas kavē saraksta tipa datu struktūru, kurā mēs varam uzglabāt sakārtoto objektu kolekciju. Tam var būt dublētās vērtības.

Saraksta interfeisu īsteno klases ArrayList, LinkedList, Vector un Stack.

Lai izveidotu saraksta interfeisu, mums ir jāizmanto:

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

Saraksta saskarnē ir dažādas metodes, kuras var izmantot, lai ievietotu, dzēstu un piekļūtu saraksta elementiem.

Klases, kas ievieš saskarni List, ir norādītas zemāk.


ArrayList

ArrayList klase īsteno List interfeisu. Tas izmanto dinamisku masīvu, lai saglabātu dažādu datu tipu dublētos elementus. ArrayList klase saglabā ievietošanas secību un nav sinhronizēta. ArrayList klasē saglabātajiem elementiem var piekļūt nejauši. Apsveriet šādu piemēru.

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

Izvade:

 Ravi Vijay Ravi Ajay 

LinkedList

LinkedList ievieš kolekcijas saskarni. Elementu glabāšanai iekšēji tiek izmantots divkārši saistīts saraksts. Tas var saglabāt dublētos elementus. Tas uztur ievietošanas secību un netiek sinhronizēts. LinkedList manipulācijas ir ātras, jo nav nepieciešama pārslēgšana.

Apsveriet šādu piemēru.

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

Izvade:

 Ravi Vijay Ravi Ajay 

Vektors

Vektors datu elementu glabāšanai izmanto dinamisku masīvu. Tas ir līdzīgs ArrayList. Tomēr tas ir sinhronizēts un satur daudzas metodes, kas nav kolekcijas sistēmas daļa.

Apsveriet šādu piemēru.

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

Izvade:

 Ayush Amit Ashish Garima 

Kaudze

Kaudze ir Vector apakšklase. Tā īsteno datu struktūru “pēdējais-pirmais-out”, t.i., Stack. Kaudzīte satur visas Vector klases metodes, kā arī nodrošina tās metodes, piemēram, Būla push(), Būla peek(), Būla push(object o), kas nosaka tās īpašības.

Apsveriet šādu piemēru.

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

Izvade:

 Ayush Garvit Amit Ashish 

Rindas interfeiss

Rindas interfeiss uztur secību “pirmais iekšā pirmais ārā”. To var definēt kā sakārtotu sarakstu, kas tiek izmantots, lai saglabātu elementus, kas tiks apstrādāti. Ir dažādas klases, piemēram, PriorityQueue, Deque un ArrayDeque, kas ievieš rindas interfeisu.

Rindas saskarni var izveidot šādi:

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

Ir dažādas klases, kas ievieš rindas interfeisu, dažas no tām ir norādītas tālāk.


PriorityQueue

PriorityQueue klase ievieš rindas interfeisu. Tajā ir elementi vai objekti, kas ir jāapstrādā pēc to prioritātēm. PriorityQueue neļauj rindā saglabāt nulles vērtības.

Apsveriet šādu piemēru.

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

Izvade:

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

Un interfeiss

Deque interfeiss paplašina rindas saskarni. Programmā Deque mēs varam noņemt un pievienot elementus no abām pusēm. Deque apzīmē divu galu rindu, kas ļauj mums veikt darbības abos galos.

Deque var izveidot šādi:

 Deque d = new ArrayDeque(); 

ArrayDeque

ArrayDeque klase ievieš Deque interfeisu. Tas mums atvieglo Deque lietošanu. Atšķirībā no rindas, mēs varam pievienot vai dzēst elementus no abiem galiem.

ArrayDeque ir ātrāks par ArrayList un Stack, un tam nav jaudas ierobežojumu.

Apsveriet šādu piemēru.

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

Izvade:

 Gautam Karan Ajay 

Iestatīt interfeisu

Iestatīt saskarni Java ir java.util pakotnē. Tas paplašina kolekcijas saskarni. Tas attēlo nesakārtotu elementu kopu, kas neļauj mums saglabāt dublētos vienumus. Mēs varam saglabāt ne vairāk kā vienu nulles vērtību sadaļā Set. Kopu ievieš HashSet, LinkedHashSet un TreeSet.

Komplektu var izveidot šādi:

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

HashSet

HashSet klase ievieš Set Interface. Tas apzīmē kolekciju, kurā glabāšanai tiek izmantota jaucējtabula. Jaukšana tiek izmantota, lai saglabātu elementus HashSet. Tas satur unikālus priekšmetus.

Apsveriet šādu piemēru.

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

Izvade:

 Vijay Ravi Ajay 

LinkedHashSet

LinkedHashSet klase ir kopas interfeisa LinkedList ieviešana. Tas paplašina HashSet klasi un ievieš Set interfeisu. Tāpat kā HashSet, tajā ir arī unikāli elementi. Tas uztur ievietošanas secību un pieļauj nulles elementus.

Apsveriet šādu piemēru.

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

Izvade:

 Ravi Vijay Ajay 

SortedSet interfeiss

SortedSet ir Set interfeisa alternatīva, kas nodrošina pilnīgu tā elementu secību. SortedSet elementi ir sakārtoti augošā (augošā) secībā. SortedSet nodrošina papildu metodes, kas kavē elementu dabisko secību.

SortedSet var izveidot šādi:

 SortedSet set = new TreeSet(); 

TreeSet

Java TreeSet klase īsteno saskarni Set, kas glabāšanai izmanto koku. Tāpat kā HashSet, TreeSet satur arī unikālus elementus. Tomēr TreeSet piekļuves un izguves laiks ir diezgan ātrs. TreeSet elementi tiek saglabāti augošā secībā.

Apsveriet šādu piemēru:

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

Izvade:

 Ajay Ravi Vijay 
Ko mēs mācīsimies Java Collections Framework
  1. ArrayList klase
  2. LinkedList klase
  3. Saraksta interfeiss
  4. HashSet klase
  5. LinkedHashSet klase
  6. TreeSet klase
  7. PriorityQueue klase
  8. Kartes interfeiss
  9. HashMap klase
  10. LinkedHashMap klase
  11. TreeMap klase
  12. Hashtable klase
  13. Šķirošana
  14. Salīdzināms interfeiss
  15. Salīdzinājuma interfeiss
  16. Rekvizītu klase Java