La col·lecció Java proporciona una arquitectura per tractar el grup d'objectes. La col·lecció significa una única unitat d'objectes. Ens permet emmagatzemar i manipular el grup d'objectes com una sola unitat.
Podem realitzar fàcilment moltes operacions com ara cercar, ordenar, inserir, suprimir i manipular un grup d'objectes mitjançant el marc de col·lecció.
El marc de col·lecció Java proporciona diverses interfícies i classes. Les interfícies contenen Conjunt, Llista , Queue, Deque , i les classes contenen ArrayList , Vector , LinkedList , HashSet , Conjunt d'arbres , LinkedHashSet , i PriorityQueue .
és una relació
En aquest apartat, diferenciarem dos elements del Marc de la col·lecció , que és List i ArrayList. La llista és una interfície i ArrayList és una classe.
Interfície de llista
La llista és una interfície fill del framework Collection que ens permet mantenir la col·lecció ordenada dels objectes. Podem emmagatzemar els valors duplicats i els elements nuls mitjançant List. Proporciona un mètode basat en un índex per dur a terme les operacions d'inserció, supressió, cerca i actualització dels objectes.
La interfície List té lloc al paquet java.util. Implementa les classes ArrayList, LinkedList, Stack i Vector. També és una base de classes ListIterator mitjançant les quals podem iterar la llista en direccions cap endavant i cap enrere.
La interfície de llista proporciona accés posicional i inserció d'elements i conserva l'ordre d'inserció. La instància de la llista es pot crear utilitzant les classes d'implementació.
Implementació de la llista:
Podem implementar la interfície List utilitzant ArrayList, LinkedList, Vector i Apilar classes .
Per crear una instancia de la interfície de llista, podem utilitzar les sintaxis següents:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Considereu l'exemple següent de llista:
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); } }
Sortida:
executant scripts a linux
[Hello, Java, Tpoint]
Classe ArrayList
La classe ArrayList utilitza una matriu dinàmica per emmagatzemar els elements. La classe ArrayList actua com una matriu, però no hi ha cap límit de mida. Podem afegir o eliminar els elements quan vulguem. Podem emmagatzemar l'element duplicat mitjançant la classe ArrayList. Gestiona internament l'ordre d'inserció.
La classe ArrayList és molt més flexible que la matriu tradicional. Implementa la interfície de llista per utilitzar tots els mètodes de la interfície de llista. Té lloc a Java paquet .util.
La classe ArrayList hereta la classe AbstractList i implementa la interfície de llista. Els seus elements es poden accedir aleatòriament. No es pot utilitzar per a tipus primitius com int, char, etc.; per a aquests tipus de dades, necessitem una classe d'embolcall.
Implementació de ArrayList:
Una classe ArrayList hereta tots els mètodes de la classe AbstractList i implementa la interfície List.
La classe ArrayList es pot declarar de la següent manera:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
ArrayList es pot definir de la següent manera:
ArrayList myList = new ArrayList();
Considereu l'exemple següent de ArrayList:
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); } }
Sortida:
[Hello, Java, Tpoint]
Algunes diferències clau entre la interfície de llista i la classe ArrayList
Algunes diferències principals entre List i ArrayList són les següents:
- Una de les principals diferències és això List és una interfície i ArrayList és una classe del marc de Java Collection.
- El List amplia el marc de col·lecció , comparativament ArrayList amplia la classe AbstractList i implementa la interfície List .
- L'espai de noms per a List i ArrayList és System.Collection.Generic i System Collection, respectivament.
- La llista emmagatzema elements en una seqüència i s'identifiquen amb el número d'índex individual. En comparació, ArrayList emmagatzema els elements en una matriu dinàmica; pot créixer quan sigui necessari.
Quan definim la llista de la següent manera:
List myList = new ArrayList();
Vol dir que només podem trucar als mètodes i als membres de referència des de la interfície Llista.
Si definim la ArrayList de la següent manera:
ascii d'a en java
ArrayList myList = new ArrayList();
Significa que podem invocar els mètodes disponibles a ArrayList i utilitzar els seus membres a més de la llista.
Considereu la taula següent per obtenir algunes comparacions de capçalera entre List i ArrayList:
Base de comparació | Llista | ArrayList |
---|---|---|
General | És una interfície. | És classe. |
Treballar | Crea una llista d'objectes als quals es pot accedir mitjançant el número d'índex individual. | Crea una matriu dinàmica que es pot ampliar quan sigui necessari. |
Implementació | List list1= new ArrayList(); | ArrayList myList = new ArrayList(); |
Ampliar/Implementar | Amplia el marc de recollida. | Estén la classe AbstractList i implementa la interfície List. |
Paquet base | Java.util | Java.util |
Espai de noms | Sistema.Col·lecció.Generic | Sistema.Col·lecció |
Rendiment | Proporciona una manipulació més ràpida dels objectes. | Proporciona una manipulació lenta d'objectes en comparació amb la llista. |
Instanciació | No es pot instanciar. | Es pot instanciar |
Conclusió
La llista és una interfície i la ArrayList és una classe de marc de Java Collection. La llista crea una matriu estàtica i l'arrayList crea una matriu dinàmica per emmagatzemar els objectes. Per tant, la llista no es pot ampliar un cop creada, però utilitzant ArrayList, podem ampliar la matriu quan sigui necessari.
És millor utilitzar la interfície de llista si voleu aprofitar el polimorfisme. En el futur, si se'ns obliga a implementar la interfície, no haurem de canviar el programa.