Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
El documento describe diferentes tipos de colecciones y iteradores en Java, incluyendo Vectores, Stacks, Enumeration, Iterator, ListIterator e Interfaz Collection. Explica sus usos y métodos principales como add, remove, size y iterator. También cubre el uso de pilas para determinar si una palabra es palíndroma.
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
2.
• Vector yStack
-Vector
-Stack
• Iteradores de una colección
-Enumeration
-Iterator
-ListaIterator
• Interfaz Collection
• Conclusiones
4.
• Java proporcionaun grupo de clases que almacenan
secuencias de objetos de cualquier tipo, son las colecciones.
La clase Vector es una de estas colecciones.
• Un vector guarda objetos de cualquier tipo y crece
dinámicamente.
• El array donde almacena los elementos es de tipo Object.
• Un vector es similar a un array, la diferencia estriba en que un
vector crece automáticamente cuando alcanza la dimensión
inicial máxima.
• Para usar la clase Vector hemos de poner al principio del
archivo del código fuente la siguiente sentencia
import java.util.*
5.
• PRIMER CONSTRUCTOR
Vectorvector= new vector(15,5);
El primer argumento del constructor determina el número de
elementos (objetos) y el segundo argumento sirve para
aumentar el tamaño del vector a 5 elementos mas en caso de
que se sobrepaso el tamaño del vector.
• SEGUNDO CONSTRUCTOR:
Vector vector= new vector(15);
Se determina el número de elementos del vector, y en caso de
sobrepasar la dimension del vector, este se duplica.
6.
• TERCER CONSTRUCTOR:
Vectorvector= new vector();
La dimensión del vector por defecto es de 10, se
duplica si se rebasa la dimensión inicial, por
ejemplo, cuando se pretende guardar once
elementos.
7.
• v.addElement(“cuatro”);
agrega unelemento a continuación de otro
• v.insertElementAt(“tres”,2);
Agrega un elemento en la posición determinada.
• v.elementAt(5)
Se accede a un elemento del vector por la posición que
ocupa. Los métodos de acceso devuelven el elemento
con el tipo Object, por esa razón es posible que sea
necesario realizar una conversión
al tipo del objeto.
8.
• void removeAllElements();
Eliminatodos los elementos
• boolean void removeElement (Object op);
elimina la primera aparición de op y devuelve true si
realiza la eliminación.
• void removeElementAt(int indice);
elimina elemento índice y el resto se renumera.
9.
• boolean contains(Objectop);
devuelve true si encuentra op
• int indexOf(Object op)
devuelve la primera posición de op, -1 si no está
10.
• La claseStack es una clase de las llamadas de tipo LIFO
(Last In - First Out, o último en entrar - primero en salir).
• Los elementos que almacena una colección stack son de tipo
genérico (tipo Object), esto hace necesario realizar conversión
de tipo cuando se extraen.
• Todas las operaciones se realizan por un único
punto, el final (cabeza o top) de la pila.
• La clase Stack hereda el comportamiento de la clase vector.
public class Stack extends Vector(){
}
11.
• public Stack();
Constructor,crea una pila vacía.
• public Object push(Object n);
Añade el elemento n, devuelve n.
• public Object pop();
Devuelve elemento cabeza y lo quita de la pila.
• public Object peek();
Devuelve elemento cabeza sin quitarlo de la pila.
• public boolean empty();
Devuelve true si la pila está vacía.
12.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
13.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
14.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
15.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
16.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
n
17.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
n
o
18.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
n
o
c
19.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
n
o
c
e
20.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
r
PUSH
e
c
o
n
o
c
e
r
21.
Analizar mediante unapila si una palabra o frase es
palíndromo.
Resolución:
Palabra= “reconocer”
Tenemos la pila , ahora
desapilamos y comparamos con
cada carácter de la palabra.
r
POP
e
c
o
n
o
c
e
r
24.
• Un iteradorpermite acceder a cada elemento de una
colección sin necesidad de conocer la estructura de la
misma.
• Hay tres tipos de iteradores:
• Enumeration
• Iterator
• ListIterator
25.
• Declara métodosque recorren una colección.
• Permite acceder a cada elemento de una colección solo
para lectura, no se puede modificar dichos elementos de
la colección.
• Declaración:
public interface Enumeration{
boolean hasMoreElements();
Object nextlElement();
}
26.
• Object nextElement();
Enla primera llamada devuelve el primer elemento, en la
siguientes devuelve el siguiente elemento de la colección.
boolean hasMoreElements();
Devuelve true si no se ha accedido a todos los elementos de la
colección, por lo general se diseña un método para recorrer
una colección y usar este método.
27.
• 1. Declararuna variable Enumerator.
Enumeration enumearion.
• 2. Llamar al método elements() de la colección.
enumera=colección.elements();
• 3. Diseñar el bucle que obtiene y procesa cada
elemento.
• while(enumera.hasMoreElements()){
elemento=(tipoElemento) enumera.nextElement();
}
• Todo objetocolección se puede recorrer con este iterador.
• Todas las colecciones tienen el métodos iterator() que devuelve un
objeto.
• La interfaz Iterator permite no sólo acceder a los elementos, sino
también eliminarlos.
• Declaración:
public interface Iterator
{
boolean hasNext();
Object next();
void remove();
}
32.
• boolean hasNext();
devuelvetrue si quedan elementos no visitados.
• Object next();
La primera llamada devuelve el primer elemento,según el orden
establecido por el iterador.
• void remove();
Elimina de la colección el elemento obtenido por la última
Llamada a next().
Sólo se puede llamar una vez después de next().
Si no ha habido una llamada a next(), levanta la excepción
IllegalStateException.
• Es específicode las colecciones que implementan la interfaz List.
• Recorre elementos de una lista en ambas direcciones.
• Elimina elementos de una lista.
• Cambia elementos de una lista.
• Añadir elementos de una lista.
• Declaración:
public interface ListIterator extends Iterator
{
boolean hasNext();
Object next();
Int nextIndex();
boolean hasPrevious();
Object previous();
Int previousIndex();
void remove();
void set(object):
void add(Object);
}
37.
• Las coleccionescon el comportamiento de Lista
disponen de los métodos listIterator()
y listIterator(int i) que devuelve un objeto ListIterator, de
tal forma que la primera llamada a next() devuelve el
primer elemento, o el de índice i respectivamente.
• Ejemplo:
ListLinked ld = new ListLinked();
ListIterator iterBdir;
iterBdir = ld.listIerator(); //elementos actual 0
iterBdir = ld.listIterator(4);// elemento actual es el 4
38.
• boolean hasPrevious();
•Devuelve true si hay un elemento anterior;
• Objetc previous();
• Devuelve el elemento anterior.
• void remove();
• elimina el último elemento obtenido por next(), o bien por previous()
• void set(Objetct q);
• sustituye q por el último elemento obtenido por next(), o bien por
previous().
• void add(Objetct q);
• inserta q inmediatamente antes del elemento que devolvería la
llamada a next() y después del elemento que devolvería la llamada a
previous()
• Describe elcomportamiento común de las colecciones
Java.
• Hay tres tipos de
colecciones descritas por los interfaces List, Set y Map.
•
43.
• boolean add(Objectob);
Devuelven true si la operación modifica la colección
• boolean add(Object ob);
Si el elemento que se inserta ya está
en la colección, depende del tipo de ésta que se
inserte o no.
44.
• boolean remove(Objecto);
• Elimina un elemento
• boolean removeAll(Collection c);
Se utiliza para eliminar todos los elementos de una lista que se contienen
en la colección.
• void clear();
List<String> lista = new ArrayList<String>();
lista.add(1,"Elemento Uno"); lista.add(2,"Elemento Dos");
lista.add("Elemento Tres");
lista.clear();
45.
• boolean contains(Objecto);
Devuelven true si la colección contiene al elemento o
elementos argumento.
• boolean containsAll(Collection c);
• boolean equals(Object o);
se recomienda implementar para comparar colecciones
del mismo tipo; por ejemplo una lista con otra lista, y que
devuelva true si son iguales en tamaño
y en los elementos.
46.
• Object[] toArray();
Devuelveun array con los elementos de la colección
• Iterator iterator();
Devuelve un objeto Iterator para recorrer la
colección.
• boolean isEmpty();
Devuelve true si está vacía la colección.
• int size();
• Devuelve el tamaño de la colección.
47.
• Los iteradoresnos ayudan para poder recorrer clases de
tipo collection como listas ligadas, arrays, vectores,
tablas hash ,tree set , de manera mucho mas fácil sin
conocer la forma en que se ha implementado una
colección en particular y contiene ciertos métodos que
facilitan el acceso a sus datos.
48.
• Estructura dedatos en java-Luis Joyanes Aguilar,Ignacio
Zahonero Martínez.