A Java Collection egy architektúrát biztosít az objektumok csoportjának kezelésére. A gyűjtemény egyetlen tárgyegységet jelent. Lehetővé teszi számunkra, hogy az objektumok csoportját egyetlen egységként tároljuk és kezeljük.
A gyűjteményi keretrendszer segítségével könnyen elvégezhetünk számos műveletet, például keresést, rendezést, beszúrást, törlést és manipulációt egy objektumcsoporton.
A Java Collection keretrendszer számos interfészt és osztályt biztosít. Az interfészek tartalmazzák Készlet, Lista , Sor, Deque , és az osztályok tartalmazzák Tömb lista , Vektor , LinkedList , HashSet , TreeSet , LinkedHashSet , és PriorityQueue .
javascript a legördülő menühöz
Ebben a részben megkülönböztetünk két elemet a Gyűjteményi keret , ami List és ArrayList. A Lista egy interfész, az ArrayList pedig egy osztály.
Lista interfész
A Lista a Collection keretrendszer gyermekfelülete, amely lehetővé teszi az objektumok rendezett gyűjteményének karbantartását. A duplikált értékeket és null elemeket a List segítségével tárolhatjuk. Index alapú módszert biztosít az objektumok beszúrási, törlési, keresési és frissítési műveleteinek végrehajtására.
A Lista felület a java.util csomagban található. ArrayList, LinkedList, Stack és Vector osztályokat valósít meg. Ez egyben a ListIterator osztályok bázisa is, amelyek segítségével a listát előre és hátra irányban iterálhatjuk.
A lista felület lehetővé teszi az elemek helyzeti elérését és beillesztését, és megőrzi a beillesztési sorrendet. A Lista példánya a megvalósítási osztályok segítségével hozható létre.
A lista megvalósítása:
A List felületet megvalósíthatjuk az ArrayList, LinkedList, Vector, ill Stack osztályok .
A Lista felület példányosításához a következő szintaxisokat használhatjuk:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Tekintsük a lista alábbi példáját:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Kimenet:
hallgassa meg a portot
[Hello, Java, Tpoint]
ArrayList osztály
Az ArrayList osztály dinamikus tömböt használ az elemek tárolására. Az ArrayList osztály tömbként működik, de nincs méretkorlátozás benne. Az elemeket bármikor hozzáadhatjuk vagy eltávolíthatjuk. A duplikált elemet az ArrayList osztály segítségével tárolhatjuk. A beillesztés sorrendjét belsőleg kezeli.
Az ArrayList osztály sokkal rugalmasabb, mint a hagyományos tömb. Megvalósítja a Lista felületet a Lista Interfész összes metódusának használatához. ben játszódik Jáva .util csomag.
Az ArrayList osztály örökli az AbstractList osztályt, és megvalósítja a List Interface-t. Ennek elemei véletlenszerűen elérhetők. Nem használható olyan primitív típusokhoz, mint az int, char stb.; ezekhez az adattípusokhoz szükségünk van egy wrapper osztályra.
Az ArrayList megvalósítása:
Az ArrayList osztály örökli az AbstractList osztály összes metódusát, és megvalósítja a List interfészt.
Az ArrayList osztály a következőképpen deklarálható:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
Az ArrayList a következőképpen definiálható:
ArrayList myList = new ArrayList();
Tekintsük az ArrayList alábbi példáját:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Kimenet:
[Hello, Java, Tpoint]
Néhány lényeges különbség a List Interface és az ArrayList osztály között
A List és az ArrayList közötti főbb különbségek a következők:
- Az egyik fő különbség az A List egy interfész, az ArrayList pedig egy osztály a Java Collection keretrendszerből.
- A A lista kiterjeszti a gyűjtési keretet , ehhez képest Az ArrayList kiterjeszti az AbstractList osztályt és megvalósítja a List interfészt .
- A List és az ArrayList névtere System.Collection.Generic és System Collection.
- A lista az elemeket sorozatban tárolja, és az egyedi indexszámmal azonosítja őket. Összehasonlításképpen, az ArrayList dinamikus tömbben tárolja az elemeket; szükség esetén nőhet.
Amikor a listát a következőképpen határozzuk meg:
List myList = new ArrayList();
Ez azt jelenti, hogy csak a Lista felületről hívhatjuk meg a metódusokat és a referenciatagokat.
Ha az ArrayList-et a következőképpen definiáljuk:
objektív java
ArrayList myList = new ArrayList();
Ez azt jelenti, hogy meghívhatjuk az ArrayListben elérhető metódusokat, és a listán kívül használhatjuk annak tagjait is.
Tekintse meg az alábbi táblázatot a List és az ArrayList néhány fej összehasonlításához:
Összehasonlítás alapja | Lista | Tömb lista |
---|---|---|
Tábornok | Ez egy interfész. | Ez osztály. |
Munka | Létrehozza az egyedi indexszámmal elérhető objektumok listáját. | Dinamikus tömböt hoz létre, amely szükség esetén bővíthető. |
Végrehajtás | Lista lista1= new ArrayList(); | ArrayList myList = new ArrayList(); |
Bővítés/végrehajtás | Kibővíti a gyűjtési keretet. | Kibővíti az AbstractList osztályt és megvalósítja a List interfészt. |
Alapcsomag | java.util | java.util |
Névtér | Rendszer.Gyűjtemény.Általános | Rendszer.Gyűjtemény |
Teljesítmény | Az objektumok gyorsabb manipulálását teszi lehetővé. | A Listához képest lassú manipulációt biztosít az objektumokon. |
Példányosítás | Nem lehet példányosítani. | Lehet példányos |
Következtetés
A Lista egy interfész, az ArrayList pedig a Java Collection keretrendszer egy osztálya. A List statikus tömböt, az ArrayList pedig egy dinamikus tömböt hoz létre az objektumok tárolására. Így a List létrehozása után nem bővíthető, de az ArrayList segítségével szükség esetén bővíthetjük a tömböt.
Jobb a List Interface használata, ha ki akarja használni a polimorfizmus előnyeit. A jövőben, ha kötelező a felület megvalósítása, nem kell módosítanunk a programot.