Está en la página 1de 15

La clase Vector

La clase Vector nos proporciona una solucin alternativa a este problema. Un vector es similar a un
array, la diferencia estriba en que un vector crece automticamente cuando alcanza la dimensin
inicial mxima. Adems, proporciona mtodos adicionales para aadir, eliminar elementos, e
insertar elementos entre otros dos existentes.

Crear un vector
Para usar la clase Vector hemos de poner al principo del archivo del cdigo fuente la
siguiente sentencia import
import java.util.*;

Cuando creamos un vector u objeto de la clase Vector, podemos especificar su dimensin inicial, y
cuanto crecer si rebasamos dicha dimensin.
Vector vector=new Vector(20, 5);

Tenemos un vector con una dimensin inicial de 20 elementos. Si rebasamos dicha dimensin y
guardamos 21 elementos la dimensin del vector crece a 25.
Al segundo constructor, solamente se le pasa la dimensin inicial.
Vector vector=new Vector(20);

Si se rebasa la dimensin inicial guardando 21 elementos, la dimensin del vector se duplica. El


programador ha de tener cuidado con este constructor, ya que si se pretende guardar un nmero
grande de elementos se tiene que especificar el incremento de la capacidad del vector, si no se
quiere desperdiciar intilmente la memoria el ordenador.
Con el tercer constructor, se crea un vector cuya dimensin inicial es 10.
Vector vector=new Vector();

La dimensin del vector se duplica si se rebasa la dimensin inicial, por ejemplo, cuando se
pretende guardar once elementos.

Aadir elementos al vector


Hay dos formas de aadir elementos a un vector. Podemos aadir un elemento a continuacin del
ltimo elemento del vector, mediante la funcin miembro addElement.
v.addElement("uno");

Podemos tambin insertar un elemento en una determinada posicin, mediante insertElementAt. El


segundo parmetro o ndice, indica el lugar que ocupar el nuevo objeto. Si tratamos de insertar un
elemento en una posicin que no existe todava obtenemos una excepcin del
tipo ArrayIndexOutOfBounds. Por ejemplo, si tratamos de insertar un elemento en la posicin 9
cuando el vector solamente tiene cinco elementos.
Para insertar el string "tres" en la tercera posicin del vector v, escribimos
v.insertElementAt("tres", 2);

En la siguiente porcin de cdigo, se crea un vector con una capacidad inicial de 10 elementos,
valor por defecto, y se le aaden o insertan objetos de la clase String.
Vector v=new Vector();
v.addElement("uno");
v.addElement("dos");
v.addElement("cuatro");
v.addElement("cinco");
v.addElement("seis");
v.addElement("siete");
v.addElement("ocho");
v.addElement("nueve");
v.addElement("diez");
v.addElement("once");
v.addElement("doce");
v.insertElementAt("tres", 2);

Para saber cuantos elementos guarda un vector, se llama a la funcin miembro size. Para saber la
dimensin actual de un vector se llama a la funcin miembro capacity. Por ejemplo, en la porcin
de cdigo hemos guardado 12 elementos en el vector v. La dimensin de v es 20, ya que se ha
superado la dimensin inicial de 10 establecida en la llamada al tercer constructor cuando se ha
creado el vector v.
System.out.println("n de elementos "+v.size());
System.out.println("dimensin "+v.capacity());

Podemos eliminar todos los elementos de un vector, llamando a la funcin


miembro removeAllElements. O bien, podemos eliminar un elemento concreto, por ejemplo el que
guarda el string "tres".
v.removeElement("tres");

Podemos eliminar dicho elemento, si especificamos su ndice.


v.removeElementAt(2);

Acceso a los elementos de un vector


El acceso a los elementos de un vector no es tan sencillo como el acceso a los elementos de un
array. En vez de dar un ndice, usamos la funcin miembro elementAt. Por
ejemplo, v.elementAt(4) sera equivalente a v[4], si v fuese un array.
Para acceder a todos lo elementos del vector, escribimos un cdigo semejante al empleado para
acceder a todos los elementos de un array.
for(int i=0; i<v.size(); i++){
System.out.print(v.elementAt(i)+"\t");
}

Existe otra alternativa, que es la de usar las funciones del interface Enumeration. Este interface
declara dos funciones pero no implementa ninguna de ellas. Una Enumeration nos permite acceder
a los elementos de una estructura de datos de forma secuencial.
public interface Enumeration {
boolean hasMoreElements();
Object nextElement();

La funcin miembro elements de la clase Vector devuelve un objeto de la


clase VectorEnumerator que implementa el interface Enumeration y tiene que definir las dos
funciones hasMoreElements y nextElement.
final class VectorEnumerator implements Enumeration {
Vector vector;
int count;
VectorEnumerator(Vector v) {
vector = v;
count = 0;
}
public boolean hasMoreElements() {
//...
}
public Object nextElement() {
//...
}
}

El objeto enum devuelto por la funcin miembro elements es de la clase VectorEnumerator, sin
embargo no podemos escribir
VectorEnumerator enum=v.elements();

porque VectorEnumerator no es una clase pblica. Como podemos ver en su definicin, no tiene la
palabra reservada public delante de class. Sin embargo, podemos guardar un objeto de la
clase VectorEnumerator en una variable enum del tipoEnumeration, por que la clase implementa
dicho interface.
Enumeration enum=v.elements();
while(enum.hasMoreElements()){
System.out.print(enum.nextElement()+"\t");
}

Desde el objeto enum devuelto por la funcin miembro elements de la clase Vector llamamos a las
funciones miembro hasMoreElements y nextElement de la clase VectorEnumerator. La
funcin hasMoreElements devuelve true mientras haya todava ms elementos que se puedan
acceder en el vector v. Cuando se ha llegado al ltimo elemento del vector, devuelve false. La
funcin nextElement devuelve una referencia al prximo elemento en la estructura de datos. Esta
funcin devuelve una referencia a un objeto de la clase base Object, que el programador precisar
en ciertos casos, como veremos ms abajo, promocionar (casting) a la clase adecuada.
Para buscar objetos en un vector se puede usar una Enumeration y hecer una comparacin elemento
por elemento mediante equals, tal como vemos en la siguiente porcin de cdigo
Enumeration enum=v.elements();
while(enum.hasMoreElements()){
String elemento=(String)enum.nextElement();
if(elemento.equals("tres")){
System.out.println("Encontrado tres");
break;
}
}

Podemos usar alternativamente, la funcin miembro contains para este propsito.


if(v.contains("tres")){
System.out.println("Encontrado tres");
}

LA CLASE Stack DE JAVA


Una pila (stack en ingls) es una estructura de datos de tipo LIFO (del ingls Last In First Out,
ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud
programas debido a su simplicidad y ordenacin implcita en la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca un
objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento
apilado.
Java provee una implementacin de esta estructura de datos en la clase java.util.Stack
que cuenta con los mtodos empty, peek, pop, y push.
INFORMACIN SOBRE MTODOS:

push

public E push(E item)


Empujar a un elemento en la parte superior de esta pila. Esto tiene exactamente el mismo efecto
que:
Parmetros:
Tema - el elemento que se inserta en esta pila.
Devoluciones:
El argumento artculo.
Ver tambin:
Vector.addElement(E)

pop

public E pop()
Elimina el objeto en la parte superior de esta pila y vuelve ese objeto como el valor de esta funcin.
Devoluciones:
El objeto en la parte superior de esta pila (el ltimo elemento del objeto del vector).
Emite:
EmptyStackException

peek

- si esta pila est vaca.

public E peek()
Mira el objeto en la parte superior de esta pila sin sacarlo de la pila.
Devoluciones:
El objeto en la parte superior de esta pila (el ltimo elemento del objeto del vector).
Emite:
EmptyStackException

- si esta pila est vaca.

empty

public boolean empty()


Comprueba si esta pila est vaca.
Devoluciones:
true si y slo si esta pila no contiene elementos; false en caso contrario.

search

public int search(Object o)


Devuelve la posicin 1 con sede en donde un objeto se encuentra en esta pila. Si el objeto o se
produce como un elemento en esta pila, este mtodo devuelve la distancia desde la parte superior de
la pila de la ocurrencia ms cerca de la parte superior de la pila; el elemento situado ms arriba en la
pila se considera que es a una distancia es igual a 1. El mtodo se utiliza para comparar o a los
artculos en esta pila.
Parmetros:
o - el objeto deseado.
Devoluciones:
La posicin 1 a base de la parte superior de la pila donde se encuentra el objeto; el valor de retorno
-1 indica que el objeto no est en la pila.

ArrayList JAVA
Son arreglos dinmicos, al hablar de dinamismo en un arreglo nos referimos al tamao de este, ya
que un arreglo normal tiene un tamao fijo para reservar en la memoria; en cambio, al crear
un ArrayList en Java su tamao inicial ser de 0, y al ir aadiendo valores ira aumentando el
tamao de este Arreglo especial.
COMO SE CREA UN ARRAYLIST EN JAVA
La sintaxis para la creacin del ArrayList es sencilla, tal como vemos en la siguiente linea:

1
ArrayList nombreArrayList = new ArrayList(); //Array List simple

Solo ten en cuenta que el nombreArrayList se reemplaza por el nombre que tu quieras Con esto
habremos creado un array list bsico, y su tamao como lo mencione al principio del post sera de
Cero.
MTODOS TILES PARA UN ARRAYLIST EN JAVA
Para realizar las operaciones comunes tales como ingresar, eliminar, buscar, modificar datos en
un ArrayList encontraremos algunos mtodos tiles para tal objetivo:

add(X) -> Aade un valor u objeto al final del ArrayList.

size() -> Retorna el tamao del ArrayList.

indexOf(X) -> Retorna el indice la posicion del elemento X.

contains(X) -> Retorna true si existe el elemento X en el ArrayList.

set(i, X) -> Modifica el elemento que esta en la posicin i, por el nuevo elemento X.

remove(X) -> Elimina el elemento X o en su defecto el elemento en la posicin X.

get(i) -> Obtiene el elemento en la posicin i del Array List.

No sobra recordar que para usar los anteriores metodos se hace de la siguiente forma:
1
nombreArrayList.metodoAUsar(parametros);

LinkedList JAVA
LinkedList. Los objetos estn unidos por conexiones, cada elemento tiene una conexin al objeto
siguiente.
import java.util.LinkedList;
public class LinkedListExample
{
/**
* In this example we can see how to use the class LinkedList with
* some of his methods more important.

* En este ejemplo podemos ver como hacer uso de la clase LinkedList


con

* algunos de sus metodos ms importantes.


public static void main(String[] args)
{
LinkedList<String> lista = new LinkedList<String>();
lista.add("1"); // Aade al final el elemento
lista.addFirst("0"); // Aade al inicio el elemento
lista.addLast("2"); // Aade al final el elemento
lista.addLast("3");
lista.addLast("4");
lista.set(1, "nuevo1"); // Sustituye el contenido de la casilla 1 por

"nuevo1"

lista.isEmpty(); // Devuelve si est o no vaca


lista.get(1); // Recupera el contenido de la posicin 1
lista.getFirst(); // Recupera el contenido de la primera posicin de la
lista

lista.getLast(); // Recupera el contenido de la ltima posicin de la


lista

lista.pollFirst(); // Recupera y borra el primer elemento de la lista


lista.pollLast(); // Recupera y borra el ltimo elemento de la lista
lista.remove(0); // Borra la posicin 0
lista.remove("98"); //Busca el elemento y si lo encuentra lo borra
lista.removeFirst(); // Borra el primer elemento
lista.removeLast(); // Borra el ltimo elemento
lista.contains("2"); // Devuelve si la lista contiene o no el elemento
lista.size(); // Devuelve el tamao de la lista
lista.clear(); // Vacia la lista
}
}

Clase AbstractSet JAVA

public abstract class AbstractSet<E>


extends AbstractCollection<E>
implements Set<E>
Esta clase proporciona una implementacin esqueltica de la interfaz conjunto para minimizar el
esfuerzo necesario para implementar esta interfaz.

El proceso de implementacin de un conjunto mediante la extensin de esta clase es idntica a la de


la aplicacin de una coleccin mediante la ampliacin de AbstractCollection, excepto que todos los
mtodos y constructores en las subclases de esta clase deben obedecer las restricciones adicionales
impuestas por la interfaz conjunto (por ejemplo, la aadir mtodo no debe permitir la adicin de
varias instancias de un objeto a un conjunto).
Tenga en cuenta que esta clase no anula ninguna de las implementaciones de la clase
AbstractCollection. Se limite a aadir implementaciones para los iguales y hashCode.
Modifier and Type

Method and Description

boolean

equals(Object o)
Compara el objeto especificado con este conjunto por la igualdad.

int

hashCode()
Devuelve el valor de cdigo hash para este conjunto.

boolean

removeAll(Collection<?> c)
Eliminado de este conjunto todos los elementos que estn contenidos en la
coleccin especificada (operacin opcional).

Clase HasMap JAVA


Los diccionarios nos permiten acceder a los elementos por medio de una clave
que elijamos nosotros, en vez de una posicin como eventualmente son los arrays
o vectores. La clase HashMap se encuentra en el paquete java.util.HashMap.

Podemos inicializar un objeto de este tipo de la siguiente manera (cabe decir que
HashMap tambin tiene otras tipos de constructores):
HashMap<Key,Value > dictionary = new HashMap<Key, Value>();

Tanto en Key como en Value lo que debemos especificar es el tipo, Key es la clave
del diccionario yValue es el valor del mismo.
HashMap<Integer, Person> dictionary = new HashMap<Integer, Person>();

En el ejemplo arriba vemos perfectamente que dictionary almacenar objetos del


tipo Person con una clave numrica tipo Integer.
Podemos agregar los objetos al diccionario con el mtodo put, el cual recibe dos
parmetros; clave, valor, en ese orden. De igual forma tenemos el mtodo get el
cual recibe un parmetro como clave del objeto a buscar, si encuentra un objeto
con la clave pasada como parmetro nos devuelve el objeto sino devuelve null.
Veamos:
import java.util.HashMap;

public class MainClass {

public static void main(String[] args) {


HashMap<Integer, Person> dictionary = new HashMap<Integer,
Person>();
Person person1 = new Person("Juan", "Pineda", 19);
Person person2 = new Person("Alex", "Rodriguez", 35);
Person person3 = new Person("Juan", "Guerra", 40);
Person person4 = new Person("Mike", "Martinez", 60);
dictionary.put(person1.getEdad(), person1);
dictionary.put(person2.getEdad(), person2);

dictionary.put(person3.getEdad(), person3);
dictionary.put(person4.getEdad(), person4);

// Obtenemos el objeto con clave igual a la edad de person3


Person x = dictionary.get(person3.getEdad());

System.out.println("Nombre: " + x.getNombre());


System.out.println("Apellido: " + x.getApellido());
System.out.println("Edad: " + x.getEdad());
}
}

Obtuvimos como salida del programa:


Nombre: Juan
Apellido: Guerra
Edad: 40

HashMap tiene entre otros los siguiente mtodos:


Object remove(Object key): Este mtodo borra el objeto de clave key en el
diccionario.
dictionary.remove(person4.getEdad());

boolean containsValue(Object value): Devuelve true si el diccionario contiene


una referencia a ese objeto pasado como parmetro, en caso contrario
devuelve false.
if(dictionary.containsValue(person2)){ // devuelve true
System.out.println("Si existe!");

}else{
System.out.println("No existe!");
}

boolean containsKey(Object key): Devuelve true si el diccionario contiene una


referencia a un objeto con la clave pasada como parmetro, en caso contrario
devuelve false.
if(dictionary.containsKey(person2.getEdad())){
System.out.println("Si existe!");
}else{
System.out.println("No existe!");
}

void clear(): Este mtodo vaca el diccionario y lo deja tal cual como estaba al
momento de instanciarse.
dictionary.clear(); // vaca el diccionario

boolean isEmpty: Devuelve true si el diccionario esta vaco o false en caso


contrario.
if(dictionary.isEmpty()){
System.out.println("Esta vaco");
}else{
System.out.println("No esta vaco!!!");
}

int size(): Este mtodo devuelve la cantidad de objetos/claves en el diccionario.


System.out.println("Cantidad de objetos en el diccionario: " +
dictionary.size());

Collection values(): Este mtodo devuelve todos los objetos contenidos en el


diccionario.
for(Person p : dictionary.values()){
System.out.println("Nombre" + p.getNombre());
System.out.println("Apellido: " + p.getApellido());
System.out.println("Edad: " + p.getEdad());
System.out.println();
}

Clase TreeMap JAVA


De este no podemos decir mucho, ya que es idntico al HashMap incluso tiene los mismos mtodos
explicados anteriormente, entre otros, pero hay ciertas diferencias:
Cuando iteramos un objeto TreeMap los objetos son extrados de la coleccin en forma ascendente
segn sus claves, ya que TreeMap ordena los objetos segn la clave.
De modo que la gran diferencia es que TreeMap ordena los objetos segn la clave en forma
ascendente, pero HashMap tericamente nos devolver los objetos en la secuencia que fueron
introducidos. Entonces Por qu no slo usar TreeMap? Ah pues el caso es que cuando usamos un
objeto definido por el usuario como clave (digamos una clase creada por nosotros) TreeMap no sabe
como ordenar la coleccin, as que solo lo hace si es con datos primitivos (Integer, String, etc).

Clase TreeSet JAVA

TreeSet proporciona una implementacin de la interfaz Conjunto que utiliza un rbol para su
almacenamiento. Los objetos se almacenan en la ordenada, de forma ascendente.
Acceso y recuperacin horaria es bastante rpido, lo que hace TreeSet una excelente opcin cuando
el almacenamiento de grandes cantidades de informacin clasificada que se deben encontrar
rpidamente.

S
N
1

Methods with Description


void add(Object o)
Agrega el elemento especificado a este conjunto, si no est ya presente.

boolean addAll(Collection c)
Aade todos los elementos de la coleccin especificada a este conjunto.

void clear()
Elimina todos los elementos de este conjunto.

Object clone()
Devuelve una copia superficial de esta instancia TreeSet.

Comparator comparator()
Devuelve el comparador utilizado para pedir este conjunto ordenado, o null
si este conjunto de rboles utiliza sus elementos de orden natural.

boolean contains(Object o)
Devuelve true si este conjunto contiene el elemento especificado.

Object first()
Devuelve el primer elemento (el ms bajo) actualmente en este conjunto
ordenado.

SortedSet headSet(Object toElement)


Devuelve una vista de la parte de este conjunto cuyos elementos son
estrictamente menor que toElement.

boolean isEmpty()
Devuelve true si este conjunto no contiene elementos.

10

Iterator iterator()
Devuelve un iterador sobre los elementos de este conjunto.

11

Object last()
Devuelve el ltimo elemento (el ms alto) actualmente en este conjunto
ordenado.

12

boolean remove(Object o)
Elimina el elemento especificado de este conjunto, si est presente.

13

int size()
Devuelve el nmero de elementos de este conjunto (su cardinalidad).

14

SortedSet subSet(Object fromElement, Object toElement)


Devuelve una vista de la parte de este conjunto cuyos elementos van desde
fromElement, ambos inclusive, a toElement, exclusivo.

15

SortedSet tailSet(Object fromElement)


Devuelve una vista de la parte de este conjunto cuyos elementos son
mayores que o igual a fromElement.

También podría gustarte