Array List
Array List
Nadjet Bouayad-Agha
Programación
2007
ArrayList
• Un ArrayList es un array dinámico. No tiene restricciones de
capacidad. Su tamaño se ajusta de forma dinámica.
• Constructor por defecto: new ArrayList(). Inicialmente, la
capacidad de un ArrayList creado así es 0.
• Los elementos dentro de un ArrayList son Objetos. No pueden ser
de tipo básico, pero pueden ser de cualquier tipo de objeto.
• La clase ArrayList forma parte del paquete java.util
• Para poner un elemento dentro de esta estructura, usamos el
método add y para recoger un elemento usamos el método get.
• Ejemplos: ArrayListExample.java
2
import java.util.*;
public class ArrayListExample1 {
3
Métodos de ArrayList
http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
4
import java.util.ArrayList;
int suma=0;
for (int i=0;i<numeros.size();i++) {
Integer thisNumero = (Integer)numeros.get(i);
suma = suma + thisNumero.intValue();
System.out.print(thisNumero);
if (i<numeros.size()-1)
System.out.print("+");
else
System.out.print("=");
}
System.out.println(suma);
}
} 5
import java.util.*;
6
Más Métodos de ArrayList
http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
• void set(index, obj) – Sustituye el elemento en la posición index por el objeto obj.
(index tiene que ser entre 0 y size()-1) dentro del ArrayList, sustituyendo el
elemento previamente almacenado a la posición N. Es equivalente a A[N] = obj
para un array A.
• Object remove(index) -- Elimina el elemento a la posición index (index entre 0 y
size()-1).
Devuelve el objeto eliminado
Los elementos después de este objeto están rebajados de una posición. El tamaño
del ArrayList disminuye de 1.
• int indexOf(obj) -- Busca el objeto obj dentro del ArrayList, y si lo encuentra,
devuelve la posición donde lo ha encontrado. Si no, devuelve -1.
7
Ejercicios
• Escribir los siguientes métodos:
– void eliminarTodos(ArrayList cadenas,String cadena)
Elimina todas las copias de cadena dentro de cadenas
– int min(ArrayList numeros)
Devuelve el número más pequeño del array dinámico
– void toUpperCase(ArrayList cadenas)
Sustituye cada cadena (String) del arrayList por la su versión
máyuscula.
– int veces(ArrayList cadenas,String cadena)
Devuelve el número de veces que aparece la cadena en el array
dinámico de cadenas.
8
Iterator
• Para recorrer un ArrayList, podemos llamar a get dado un
índice (como en los métodos anteriores).
• Podemos prescindir de los índices y usar un Iterator sobre este
ArrayList: ArrayListIterator.java
• La clase Iterator pertenece al paquete java.util
• La única función de un objeto de tipo Iterator es recorrer un
ArrayList.
• Iterator tiene como métodos hasNext (que devuelve un
boolean) y next (que devuelve un Object).
• Como StringTokenizer, un objeto de tipo Iterator es de un solo
uso.
9
import java.util.*;
Iterator it = thisArrayList.iterator();
while (it.hasNext())
System.out.print(it.next()+" ");
}
10
HashMap
• Un HashMap es un array asociativo (o hash table).
• Contiene asociaciones <clave,valor>, donde la clave es
única y permite acceder al valor.
• Ejemplos de asociaciones:
– La lista de alumnos, cada alumno es accesible por su NIA.
– El directorio telefónico, cada número se accede por los apellidos
y la dirección.
– Un diccionario, cada definición se accede por lemma.
• Ejemplo: UseHashMap.java
11
Métodos de HashMap
http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
12
import java.util.*;
hashmap.put("one",new Integer(1));
hashmap.put("two",null);
hashmap.put("three","THREE");
hashmap.put("four",aa);
13
Métodos de HashMap
http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
14
Nota: Set es una clase de java.util
System.out.println("The elements of HashMap are");
Set set= hashmap.keySet();
Iterator iter = set.iterator();
while(iter.hasNext()){
Object clave = iter.next();
Object valor = hashmap.get(clave);
System.out.println("Key: " + clave + " Value: " + valor);
}
15
Métodos de HashMap
http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
16
System.out.println("Contains key \"one\" ="+hashmap.containsKey("one"));
System.out.println("Contains key \"five\" ="+hashmap.containsKey("five"));
System.out.println("Contains value of variable aa \"INDIA\" ="+hashmap.containsValue(aa));
Integer thisInteger = new Integer(6);
System.out.println("Contains value \“6\” as Integer ="+hashmap.containsValue(thisInteger));
17
Métodos de HashMap
http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
18
Nota: Collection es una clase de java.util
hashmap.remove("two");
System.out.println("The size of HashMap has reduced by one");
System.out.println("The size of HashMap = " + hashmap.size());
System.out.println("The values of HashMap are =" + hashmap.values());
19
Ejercicios
• Escribir los métodos:
– Alumno getAlumno(HashMap alumnos,String nia)
Dado un array asociativo de <NIA,objeto-alumno>, el método
devuelve el valor (objeto-alumno) dado la clave.
– void increment(HashMap palabras,String palabra)
Dado un array asociativo palabras de <cadena,numero>, donde
cadena es una palabra (tipo) de un corpus y numero el
número de veces que ocurre en el corpus, el método
incrementa de uno el número de veces que ocurre palabra.
Importante: puede que “palabra” no exista en el hashmap, en
tal caso habrá que añadirlo.
20