logo

Razlika između Liste i ArrayList-a

Java zbirka pruža arhitekturu za rad s grupom objekata. Zbirka označava jednu jedinicu predmeta. Omogućuje nam pohranjivanje i rukovanje grupom objekata kao jednom jedinicom.

Lako možemo izvesti mnoge operacije kao što su pretraživanje, sortiranje, umetanje, brisanje i manipulacija na grupi objekata pomoću okvira zbirke.

Java Collection framework nudi nekoliko sučelja i klasa. Sučelja sadrže set, Popis , Red, Deque , a klase sadrže ArrayList , Vektor , LinkedList , HashSet , TreeSet , LinkedHashSet , i PriorityQueue .

sesija je istekla

U ovom odjeljku ćemo razlikovati dva elementa Okvir zbirke , što je List i ArrayList. Popis je sučelje, a ArrayList je klasa.

Razlika između Liste i ArrayList-a

Sučelje popisa

Popis je podređeno sučelje okvira zbirke koje nam omogućuje održavanje uređene zbirke objekata. Duplicirane vrijednosti i nulte elemente možemo pohraniti pomoću popisa. Omogućuje metodu temeljenu na indeksu za izvođenje operacija umetanja, brisanja, pretraživanja i ažuriranja na objektima.

Sučelje List nalazi se u paketu java.util. Implementira klase ArrayList, LinkedList, Stack i Vector. To je također baza ListIterator klasa pomoću kojih možemo iterirati Listu u smjeru naprijed i nazad.

Sučelje popisa omogućuje pozicioni pristup i umetanje elemenata te čuva redoslijed umetanja. Instanca Liste može se kreirati pomoću implementirajućih klasa.

Implementacija popisa:

Sučelje List možemo implementirati korištenjem ArrayList, LinkedList, Vector i Stack klase .

Da bismo instancirali List sučelje, možemo koristiti sljedeće sintakse:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Razmotrite donji primjer popisa:

 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); } } 

Izlaz:

kontradiktorna pretraga
 [Hello, Java, Tpoint] 

Klasa ArrayList

Klasa ArrayList koristi dinamički niz za pohranjivanje elemenata. Klasa ArrayList djeluje kao niz, ali u njoj nema ograničenja veličine. Elemente možemo dodavati ili uklanjati kad god želimo. Duplicirani element možemo pohraniti pomoću klase ArrayList. Interno upravlja redoslijedom umetanja.

Klasa ArrayList mnogo je fleksibilnija od tradicionalnog polja. Implementira sučelje popisa za korištenje svih metoda sučelja popisa. Odvija se u Java .util paket.

Klasa ArrayList nasljeđuje klasu AbstractList i implementira sučelje popisa. Njegovim elementima može se pristupiti nasumično. Ne može se koristiti za primitivne tipove kao što su int, char, itd.; za ove tipove podataka potrebna nam je klasa omotača.

Implementacija ArrayList-a:

Klasa ArrayList nasljeđuje sve metode klase AbstractList i implementira sučelje List.

Klasa ArrayList može se deklarirati na sljedeći način:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList se može definirati na sljedeći način:

 ArrayList myList = new ArrayList(); 

Razmotrite donji primjer ArrayList-a:

 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); } } 

Izlaz:

 [Hello, Java, Tpoint] 

Neke ključne razlike između sučelja popisa i klase ArrayList

Neke glavne razlike između Liste i ArrayList su sljedeće:

  • Jedna od glavnih razlika je ta List je sučelje, a ArrayList je klasa okvira Java zbirke.
  • The Popis proširuje okvir zbirke , usporedno ArrayList proširuje klasu AbstractList i implementira sučelje List .
  • Prostor imena za List i ArrayList je System.Collection.Generic odnosno System Collection.
  • Popis pohranjuje elemente u nizu i identificirani su pojedinačnim indeksnim brojem. Usporedno, ArrayList pohranjuje elemente u dinamički niz; može rasti kada je potrebno.

Kada popis definiramo na sljedeći način:

 List myList = new ArrayList(); 

To znači da metode i referentne članove možemo pozivati ​​samo iz sučelja popisa.

Ako ArrayList definiramo na sljedeći način:

modifikatorske tipke
 ArrayList myList = new ArrayList(); 

To znači da možemo pozvati dostupne metode u ArrayList i koristiti njegove članove uz Listu.

Razmotrite donju tablicu za neke usporedbe između List i ArrayList:

Baza usporedbe Popis ArrayList
Općenito To je sučelje. To je klasa.
Raditi Stvara popis objekata kojima se može pristupiti pojedinačnim indeksnim brojem. Stvara dinamički niz koji se po potrebi može proširiti.
Provedba Lista lista1= novi ArrayList(); ArrayList myList = novi ArrayList();
Proširiti/Implementirati Proširuje okvir zbirke. Proširuje klasu AbstractList i implementira sučelje List.
Osnovni paket java.util java.util
Imenski prostor Sustav.Zbirka.Generički Sustav.Zbirka
Izvođenje Omogućuje bržu manipulaciju objektima. Omogućuje sporu manipulaciju objektima u usporedbi s Listom.
Instanciranje Ne može se instancirati. Može se instancirati

Zaključak

Popis je sučelje, a ArrayList je klasa okvira Java Collection. Popis stvara statički niz, a ArrayList stvara dinamički niz za pohranjivanje objekata. Dakle, popis se ne može proširiti nakon što je kreiran, ali pomoću ArrayList-a možemo proširiti niz kada je potrebno.

Bolje je koristiti sučelje popisa ako želite iskoristiti prednosti polimorfizma. U budućnosti, ako budemo morali implementirati sučelje, nećemo morati mijenjati program.