logo

A List és az ArrayList közötti különbség

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.

A List és az ArrayList közötti különbség

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.