The Kolekcija Java yra sistema, kuri suteikia architektūrą objektų grupei saugoti ir jais valdyti.
Java kolekcijos gali atlikti visas operacijas, kurias atliekate su duomenimis, pvz., paiešką, rūšiavimą, įterpimą, manipuliavimą ir trynimą.
Java kolekcija reiškia vieną objektų vienetą. „Java Collection“ sistemoje yra daug sąsajų (nustatyti, sąrašas, eilė, panaikinimas) ir klasių ( ArrayList , vektorius, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).
Kas yra kolekcija Java
Kolekcija reiškia vieną objektų vienetą, ty grupę.
Kas yra „Java“ sistema
- Tai suteikia paruoštą architektūrą.
- Tai reiškia klasių ir sąsajų rinkinį.
- Tai neprivaloma.
Kas yra kolekcijos sistema
Kolekcijos struktūra yra vieninga objektų grupės saugojimo ir manipuliavimo architektūra. Tai turi:
- Sąsajos ir jų įgyvendinimai, t.y., klasės
- Algoritmas
Ar tu žinai?
- Kokie yra du būdai kartoti kolekcijos elementus?
- Kuo ArrayList ir LinkedList klasės skiriasi rinkinio sistemoje?
- Kuo skiriasi „ArrayList“ ir „Vector“ klasės kolekcijos sistemoje?
- Kuo skiriasi HashSet ir HashMap klasės rinkimo sistemoje?
- Kuo skiriasi „HashMap“ ir „Hashtable“ klasė?
- Kuo skiriasi „Iterator“ ir „Enumeration“ sąsaja rinkimo sistemoje?
- Kaip galime rūšiuoti objekto elementus? Kuo skiriasi palyginimo ir palyginimo sąsajos?
- Ką reiškia maišos kodas () metodas?
- Kuo skiriasi „Java“ kolekcija ir „Java“ kolekcijos?
Kolekcijos sistemos hierarchija
Pažiūrėkime kolekcijos sistemos hierarchiją. The java.util pakuotėje yra visi klases ir sąsajos rinkinio sistemai.
Surinkimo sąsajos metodai
Kolekcijos sąsajoje yra daug metodų. Jie yra tokie:
Nr. | Metodas | apibūdinimas |
---|---|---|
1 | viešas loginis priedas (E e) | Jis naudojamas elementui įterpti į šią kolekciją. |
2 | viešoji loginė vertė „addAll“ (c rinkinys) | Jis naudojamas nurodytiems rinkinio elementams įterpti į iškviečiamą kolekciją. |
3 | viešas loginis pašalinimas (objekto elementas) | Jis naudojamas elementui ištrinti iš kolekcijos. |
4 | vieša loginė vertė pašalinti viską (rinkinys c) | Jis naudojamas ištrinti visus nurodyto rinkinio elementus iš iškviečiamo rinkinio. |
5 | numatytasis loginis pašalinimas, jei (predikacinis filtras) | Jis naudojamas ištrinti visus rinkinio elementus, kurie atitinka nurodytą predikatą. |
6 | vieša loginė vertė išlaikyti viską (rinkinys c) | Jis naudojamas ištrinti visus iškviečiamo rinkinio elementus, išskyrus nurodytą kolekciją. |
7 | viešas int dydis () | Jis grąžina bendrą kolekcijos elementų skaičių. |
8 | vieša galia aišku () | Iš kolekcijos pašalinamas bendras elementų skaičius. |
9 | viešoji loginė vertė yra (objekto elementas) | Jis naudojamas elemento paieškai. |
10 | viešoji loginė vertė apima viską (c rinkinys) | Jis naudojamas ieškant nurodytoje kolekcijoje kolekcijoje. |
vienuolika | viešasis iteratoriaus iteratorius() | Tai grąžina iteratorių. |
12 | viešasis objektas[] toArray() | Jis paverčia kolekciją į masyvą. |
13 | viešasis T[] į masyvą(T[] a) | Jis paverčia kolekciją į masyvą. Čia grąžinamo masyvo vykdymo laikas yra nurodyto masyvo tipas. |
14 | viešoji loginė vertė yra tuščia() | Ji patikrina, ar kolekcija tuščia. |
penkiolika | numatytasis srautas parallelStream() | Jis grąžina galbūt lygiagretų srautą, kurio šaltinis yra kolekcija. |
16 | numatytasis srauto srautas () | Jis grąžina nuoseklų srautą, kurio šaltinis yra kolekcija. |
17 | numatytasis skirstytuvo skirstytuvas() | Jis sukuria skirstytuvą per nurodytus kolekcijos elementus. |
18 | vieša loginė vertė (Objekto elementas) | Jis atitinka dvi kolekcijas. |
19 | viešas int maišos kodas () | Jis grąžina kolekcijos maišos kodo numerį. |
Iteratoriaus sąsaja
Iteratoriaus sąsaja suteikia galimybę kartoti elementus tik į priekį. |
Iteratoriaus sąsajos metodai
Iteratoriaus sąsajoje yra tik trys metodai. Jie yra:
Nr. | Metodas | apibūdinimas |
---|---|---|
1 | vieša loginė vertė turiNext() | Jis grąžina teisingą, jei iteratorius turi daugiau elementų, kitaip jis grąžina false. |
2 | viešasis objektas kitas() | Jis grąžina elementą ir perkelia žymeklio žymeklį į kitą elementą. |
3 | public void pašalinti () | Pašalina paskutinius iteratoriaus grąžintus elementus. Jis yra mažiau naudojamas. |
Iteruojama sąsaja
Iterable sąsaja yra visų kolekcijų klasių šakninė sąsaja. Kolekcijos sąsaja išplečia Iterable sąsają, todėl visi rinkinio sąsajos poklasiai taip pat įgyvendina Iterable sąsają.
Jame yra tik vienas abstraktus metodas. t.y.,
Iterator iterator()
Jis grąžina iteratorių per T tipo elementus.
java yra lygi
Kolekcijos sąsaja
Kolekcijos sąsaja yra sąsaja, kurią įgyvendina visos rinkinio sistemos klasės. Jame deklaruojami metodai, kuriuos turės kiekviena kolekcija. Kitaip tariant, galime sakyti, kad Kolekcijos sąsaja sukuria pagrindą, nuo kurio priklauso kolekcijos sistema.
Kai kurie rinkinio sąsajos metodai yra Būlio pridėti (Object obj), Būlio addAll (Kolekcija c), void clear() ir kt., kuriuos įgyvendina visi Kolekcijos sąsajos poklasiai.
Sąrašo sąsaja
Sąrašo sąsaja yra antrinė Kolekcijos sąsajos sąsaja. Tai slopina sąrašo tipo duomenų struktūrą, kurioje galime saugoti sutvarkytą objektų rinkinį. Jis gali turėti pasikartojančias vertes.
Sąrašo sąsają įgyvendina klasės ArrayList, LinkedList, Vector ir Stack.
Norėdami sukurti sąrašo sąsają, turime naudoti:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Sąrašo sąsajoje yra įvairių metodų, kuriuos galima naudoti norint įterpti, ištrinti ir pasiekti sąrašo elementus.
Klasės, įgyvendinančios Sąrašo sąsają, pateiktos žemiau.
ArrayList
ArrayList klasė įgyvendina List sąsają. Jis naudoja dinaminį masyvą skirtingų duomenų tipų pasikartojantiems elementams saugoti. „ArrayList“ klasė palaiko įterpimo tvarką ir yra nesinchronizuota. „ArrayList“ klasėje saugomus elementus galima pasiekti atsitiktine tvarka. Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Ravi Vijay Ravi Ajay
LinkedList
LinkedList įgyvendina kolekcijos sąsają. Elementams saugoti viduje naudojamas dvigubai susietas sąrašas. Jis gali saugoti pasikartojančius elementus. Jis palaiko įterpimo tvarką ir nėra sinchronizuojamas. „LinkedList“ manipuliavimas yra greitas, nes nereikia perjungti.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Ravi Vijay Ravi Ajay
Vektorius
Vektorius duomenų elementams saugoti naudoja dinaminį masyvą. Tai panašu į ArrayList. Tačiau jis yra sinchronizuotas ir jame yra daug metodų, kurie nėra kolekcijos sistemos dalis.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Ayush Amit Ashish Garima
Stack
Stackas yra Vector poklasis. Ji įgyvendina duomenų struktūrą „paskutinysis pirmas“, ty „Stack“. Steke yra visi Vector klasės metodai, taip pat pateikiami tokie metodai kaip loginis push(), boolean peek(), loginis push(object o), kurie apibrėžia jo savybes.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Ayush Garvit Amit Ashish
Eilės sąsaja
Eilės sąsaja palaiko tvarką „pirmas pirmas iš pirmo“. Jis gali būti apibrėžtas kaip sutvarkytas sąrašas, naudojamas elementams, kurie bus apdoroti, laikyti. Yra įvairių klasių, tokių kaip PriorityQueue, Deque ir ArrayDeque, kurios įgyvendina eilės sąsają.
Eilės sąsają galima sukurti taip:
Queue q1 = new PriorityQueue(); Queue q2 = new ArrayDeque();
Yra įvairių klasių, kurios įgyvendina eilės sąsają, kai kurios iš jų pateikiamos žemiau.
PriorityQueue
„PriorityQueue“ klasė įgyvendina „Queue“ sąsają. Jame yra elementai arba objektai, kurie turi būti apdorojami pagal jų prioritetus. PriorityQueue neleidžia eilėje saugoti nulinių reikšmių.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
head:Amit Sharma head:Amit Sharma iterating the queue elements: Amit Sharma Raj JaiShankar Vijay Raj after removing two elements: Raj Vijay Raj
Ir sąsaja
Deque sąsaja išplečia eilės sąsają. Deque mes galime pašalinti ir pridėti elementus iš abiejų pusių. Deque reiškia dvipusę eilę, kuri leidžia mums atlikti operacijas abiejuose galuose.
Deque gali būti pavaizduotas kaip:
Deque d = new ArrayDeque();
ArrayDeque
ArrayDeque klasė įgyvendina Deque sąsają. Tai mums palengvina Deque naudojimą. Skirtingai nuo eilės, mes galime pridėti arba ištrinti elementus iš abiejų galų.
ArrayDeque yra greitesnis nei ArrayList ir Stack ir neturi talpos apribojimų.
Apsvarstykite toliau pateiktą pavyzdį.
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); } } }
Išvestis:
Gautam Karan Ajay
Nustatyti sąsają
Nustatyti sąsają Java yra java.util pakete. Tai praplečia kolekcijos sąsają. Tai yra nesutvarkytas elementų rinkinys, kuris neleidžia saugoti pasikartojančių elementų. Set galime išsaugoti daugiausia vieną nulinę reikšmę. Rinkinį įgyvendina HashSet, LinkedHashSet ir TreeSet.
Rinkinys gali būti kartojamas taip:
Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet();
HashSet
HashSet klasė įgyvendina Set Interface. Tai yra kolekcija, kurioje saugojimui naudojama maišos lentelė. Maiša naudojama elementams saugoti HashSet. Jame yra unikalių daiktų.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Vijay Ravi Ajay
LinkedHashSet
„LinkedHashSet“ klasė reiškia „Set Interface“ „LinkedList“ įgyvendinimą. Jis išplečia HashSet klasę ir įgyvendina Set sąsają. Kaip ir HashSet, jame taip pat yra unikalių elementų. Jis palaiko įterpimo tvarką ir leidžia nulinius elementus.
Apsvarstykite toliau pateiktą pavyzdį.
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()); } } }
Išvestis:
Ravi Vijay Ajay
SortedSet sąsaja
„SortedSet“ yra „Set“ sąsajos alternatyva, kuri suteikia bendrą elementų tvarką. SortedSet elementai yra išdėstyti didėjančia (didėjančia) tvarka. „SortedSet“ pateikia papildomus metodus, kurie slopina natūralią elementų tvarką.
„SortedSet“ gali būti pavaizduotas kaip:
SortedSet set = new TreeSet();
Medžių rinkinys
„Java TreeSet“ klasė įgyvendina „Set“ sąsają, kuri saugojimui naudoja medį. Kaip ir HashSet, TreeSet taip pat yra unikalių elementų. Tačiau TreeSet prieiga ir gavimo laikas yra gana greitas. „TreeSet“ elementai saugomi didėjančia tvarka.
Apsvarstykite šį pavyzdį:
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()); } } }
Išvestis:
Ajay Ravi VijayKo mes išmoksime „Java Collections Framework“.
- „ArrayList“ klasė
- LinkedList klasė
- Sąrašo sąsaja
- HashSet klasė
- LinkedHashSet klasė
- TreeSet klasė
- PriorityQueue klasė
- Žemėlapio sąsaja
- HashMap klasė
- LinkedHashMap klasė
- TreeMap klasė
- Hashtable klasė
- Rūšiavimas
- Palyginama sąsaja
- Palyginimo sąsaja
- „Java“ savybių klasė