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:
- Saskarnes un to realizācijas, t.i., klases
- 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.
Kolekcijas saskarnes metodes
Kolekcijas saskarnē ir norādītas daudzas metodes. Tie ir šādi:
Nē. | Metode | Apraksts |
---|---|---|
1 | publiska Būla pievienošana(E e) | To izmanto, lai ievietotu elementu šajā kolekcijā. |
2 | publiska Būla vērtība addAll (c kolekcija) | To izmanto, lai ievietotu norādītos kolekcijas elementus izsaukšanas kolekcijā. |
3 | publiska Būla noņemšana (Objekta elements) | To izmanto, lai izdzēstu elementu no kolekcijas. |
4 | publisks Būla noņemšana Visu (C kolekcija) | To izmanto, lai izdzēstu visus norādītās kolekcijas elementus no izsaukšanas kolekcijas. |
5 | noklusējuma Būla noņemšanaIf (predikātu filtrs) | To izmanto, lai dzēstu visus kolekcijas elementus, kas atbilst norādītajam predikātam. |
6 | publiska 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. |
7 | publiskais int izmērs() | Tas atgriež kopējo elementu skaitu kolekcijā. |
8 | publisks tukšums skaidrs() | Tas noņem no kolekcijas kopējo elementu skaitu. |
9 | publiskais Būla saturs (Objekta elements) | To izmanto elementa meklēšanai. |
10 | publiskais Būla saturs satur visu (c kolekcija) | To izmanto, lai meklētu norādīto kolekciju kolekcijā. |
vienpadsmit | publiskais iteratora iterators() | Tas atgriež iteratoru. |
12 | publisks objekts[] toArray() | Tas pārvērš kolekciju masīvā. |
13 | publiskais 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. |
14 | publiskais Būla irEmpty() | Tas pārbauda, vai kolekcija ir tukša. |
piecpadsmit | noklusējuma straume parallelStream() | Tas atgriež, iespējams, paralēlu straumi, kuras avots ir kolekcija. |
16 | noklusējuma straumes straume () | Tā atgriež secīgu straumi, kuras avots ir kolekcija. |
17 | noklusējuma sadalītāja sadalītājs() | Tas ģenerē sadalītāju virs norādītajiem kolekcijas elementiem. |
18 | publiskais Būla vienāds (Objekta elements) | Tas atbilst divām kolekcijām. |
19 | publisks 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ē. | Metode | Apraksts |
---|---|---|
1 | publiska 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. |
2 | publiskais objekts nākamais() | Tas atgriež elementu un pārvieto kursora rādītāju uz nākamo elementu. |
3 | publiskais 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 VijayKo mēs mācīsimies Java Collections Framework
- ArrayList klase
- LinkedList klase
- Saraksta interfeiss
- HashSet klase
- LinkedHashSet klase
- TreeSet klase
- PriorityQueue klase
- Kartes interfeiss
- HashMap klase
- LinkedHashMap klase
- TreeMap klase
- Hashtable klase
- Šķirošana
- Salīdzināms interfeiss
- Salīdzinājuma interfeiss
- Rekvizītu klase Java