Array-Based List
Collection
Ma. de los Angeles Junco Rey
Listas
Una lista es una secuencia que almacena elementos por
posicin. Si existen n elementos en la coleccin, el primero
se encuentra en la posicin 0 y el ltimo en la posicin n-1.
La interface List describe una categora de colecciones
basadas en posiciones. List extiende de la interface
Collection.
Ma. de los Angeles Junco Rey
Ma. de los Angeles Junco Rey
Interface List
Ma. de los Angeles Junco Rey
Colecciones en Java
Ma. de los Angeles Junco Rey
Clase ArrayList
Un ArrayList es una estructura genrica que almacena
elementos en bloques contiguos de memoria. El final de la lista
proporciona la capacidad de expanderse en caso de que se
necesite ms espacio para almacenar los elementos deseados.
Ma. de los Angeles Junco Rey
Tamao de ArrayList
La capacidad de un ArrayList es el total de elementos en el bloque de
memoria en el que se encuentra la lista. El tamao es el total de
elementos que actualmente se encuentran el la lista.
El mtodo ensureCapacity(minCapacity) asegura que el bloque de
almacenamiento tiene, al menos, una minCapacity disponible para
almacenar elementos.
El mtodo trimToSize() reduce la capacidad la lista a su tamao (size)
actual.
Unin de dos ArrayLists
public static <T> void join (ArrayList<T> listA,
ArrayList<T> listB) {
int i, sizeA = listA.size(), sizeB = listB.size();
listA.ensureCapacity(sizeA + sizeB);
for (i = 0; i < sizeB; i++)
listA.add(listB.get(i));
}
Ma. de los Angeles Junco Rey
Implementando un ArrayList
Un objeto ArrayList utiliza un arreglo de un tipo especfico para
almacenar sus elementos.
Ma. de los Angeles Junco Rey
Implementando un ArrayList
(variables y constructor)
public class ArrayList<T> implements List<T> {
private T[] listArr;
private int listSize;
public ArrayList()
{
listArr = (T[])new Object[10];
listSize = 0;
}
. . .
}
Ma. de los Angeles Junco Rey
ensureCapacity()
public void ensureCapacity (int minCapacity) {
int currentCapacity = listArr.length;
if (minCapacity > currentCapacity) {
T[] oldListArr = listArr;
listArr = (T[]) new Object[minCapacity];
for (int i=0; i < listSize; i++)
listArr[i] = oldListArr[i];
oldListArr = null;
}
}
add(int index, T item)
public void add (int index, T item) {
if (index >= 0 && index < this.listSize) {
if (this.listSize == this.listArr.length)
this.ensureCapacity(2 * this.listArr.length);
for (int j = this.listSize-1; j >= index; j--)
this.listArr[ j+1 ] = this.listArr[ j ];
this.listArr[index] = item;
this.listSize++;
}
}
public boolean add (Object item){
add(listSize, item);
return true;
}
Ma. de los Angeles Junco Rey
remove(int index)
public T remove (int index) {
if (index >= 0 && index < this.listSize) {
T returnElement = this.listArr[index];
for (int j = index; j < this.listSize-1; j++)
this.listArr[ j ] = this.listArr[ j+1 ];
this.listArr[this.listSize-1] = null;
listSize--;
return returnElement;
}
return null;
Ma. de los Angeles Junco Rey
remove(Object item)
public boolean remove (Object item) {
int i = 0;
boolean retValue = true;
if ((i = indexOf (item)) != -1)
remove(i);
else
retValue = false;
return retValue;
}
Ma. de los Angeles Junco Rey
get(int index)
public T get (int index) {
if (index >= 0 && index < this.listSize)
return this.listArr[index];
return null;
}
Ma. de los Angeles Junco Rey
set(int index, T item)
public T set (int index, T item)
{
if (index >= 0 && index < this.listSize) {
T previousValue = this.listArr[index];
this.listArr[index] = item;
return previousValue;
}
return null;
}
Ma. de los Angeles Junco Rey
Ejemplos ArrayList
ComparaArrayListYArreglo.java
Ma. de los Angeles Junco Rey
Viel mehr als nur Dokumente.
Entdecken, was Scribd alles zu bieten hat, inklusive Bücher und Hörbücher von großen Verlagen.
Jederzeit kündbar.