logo

Kolekcijos Java

  1. Java kolekcijos sistema
  2. Kolekcijos sistemos hierarchija
  3. Kolekcijos sąsaja
  4. Iteratoriaus sąsaja

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:

  1. Sąsajos ir jų įgyvendinimai, t.y., klasės
  2. 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.

„Java Collection“ sistemos hierarchija

Surinkimo sąsajos metodai

Kolekcijos sąsajoje yra daug metodų. Jie yra tokie:

Nr.Metodasapibūdinimas
1viešas loginis priedas (E e)Jis naudojamas elementui įterpti į šią kolekciją.
2viešoji loginė vertė „addAll“ (c rinkinys)Jis naudojamas nurodytiems rinkinio elementams įterpti į iškviečiamą kolekciją.
3viešas loginis pašalinimas (objekto elementas)Jis naudojamas elementui ištrinti iš kolekcijos.
4vieša loginė vertė pašalinti viską (rinkinys c)Jis naudojamas ištrinti visus nurodyto rinkinio elementus iš iškviečiamo rinkinio.
5numatytasis loginis pašalinimas, jei (predikacinis filtras)Jis naudojamas ištrinti visus rinkinio elementus, kurie atitinka nurodytą predikatą.
6vieša loginė vertė išlaikyti viską (rinkinys c)Jis naudojamas ištrinti visus iškviečiamo rinkinio elementus, išskyrus nurodytą kolekciją.
7viešas int dydis ()Jis grąžina bendrą kolekcijos elementų skaičių.
8vieša galia aišku ()Iš kolekcijos pašalinamas bendras elementų skaičius.
9viešoji loginė vertė yra (objekto elementas)Jis naudojamas elemento paieškai.
10viešoji loginė vertė apima viską (c rinkinys)Jis naudojamas ieškant nurodytoje kolekcijoje kolekcijoje.
vienuolikaviešasis iteratoriaus iteratorius()Tai grąžina iteratorių.
12viešasis objektas[] toArray()Jis paverčia kolekciją į masyvą.
13viešasis T[] į masyvą(T[] a)Jis paverčia kolekciją į masyvą. Čia grąžinamo masyvo vykdymo laikas yra nurodyto masyvo tipas.
14viešoji loginė vertė yra tuščia()Ji patikrina, ar kolekcija tuščia.
penkiolikanumatytasis srautas parallelStream()Jis grąžina galbūt lygiagretų srautą, kurio šaltinis yra kolekcija.
16numatytasis srauto srautas ()Jis grąžina nuoseklų srautą, kurio šaltinis yra kolekcija.
17numatytasis skirstytuvo skirstytuvas()Jis sukuria skirstytuvą per nurodytus kolekcijos elementus.
18vieša loginė vertė (Objekto elementas)Jis atitinka dvi kolekcijas.
19vieš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.Metodasapibūdinimas
1vieša loginė vertė turiNext()Jis grąžina teisingą, jei iteratorius turi daugiau elementų, kitaip jis grąžina false.
2viešasis objektas kitas()Jis grąžina elementą ir perkelia žymeklio žymeklį į kitą elementą.
3public 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 Vijay 
Ko mes išmoksime „Java Collections Framework“.
  1. „ArrayList“ klasė
  2. LinkedList klasė
  3. Sąrašo sąsaja
  4. HashSet klasė
  5. LinkedHashSet klasė
  6. TreeSet klasė
  7. PriorityQueue klasė
  8. Žemėlapio sąsaja
  9. HashMap klasė
  10. LinkedHashMap klasė
  11. TreeMap klasė
  12. Hashtable klasė
  13. Rūšiavimas
  14. Palyginama sąsaja
  15. Palyginimo sąsaja
  16. „Java“ savybių klasė