Vector ilimitado

juanmanuelsanchez
06 de Junio del 2005
Hola a todos, quisiera saber como puedo crear un vector ilimitado, como en C++. Yo tengo un vector de esta manera.

public String[] fechaformat=new String [1000];

Lo que quiero es no tener que limitarlo en 1000 elementos.

Muchas gracias


Palmax Maverick
06 de Junio del 2005
Lo que tu quieres es una lista, no sé como se declaran en Java (si alguien lo sabe que ponga un ejemplo).
Una lista es un nodo y un puntero a siguiente (si no hay siguiente pos a NULL).
De malo tiene que el acceso no es O(1) como un vector sino O(n), la complejidad de acceder al nodo i es tener que ir dando saltos de nodo a nodo hasta el i-esimo
Lo bueno es que la memoria que usa es la "mínima" a utilizar siempre y que no hay limitación en su tamaño, más que la memoria que tengas.
Ta luego
Palmax Maverick
[email protected]

miguelAngel
06 de Junio del 2005
Ya existe una implementación de Listas enlazadas en java (clase LinkedList), por ejemplo:

import java.util.LinekdList;

public static void main(String [] args){
LinkedList data = new LinkedList();

// Añade al final de la lista un String

LinkedList.add(new String("Primer elemento"));

}

más métodos de interés:

data.getSize(); // Devuelve cuantos elementos tiene la lista

data.addFirst(Object o); // Añade al inicio de la lista el objeto

data.addLast(Object o); // Añade al final

Object o = data.get(i); // Obtiene el elemento de la posición i;

Nota: Las LinkedList solamente pueden contener objetos.

Por ejemplo si los que queremos es extraer un objeto de la clase Coche debemos hacer una conversión de tipo, es decir

Coche c = (Coche)data.get(i);

Si queremos introducir tipos de datos primitivos debemos usar las clases envoltorio Float, Integer, etc...

Espero que les sea de utilidad.

Saludos

Mario Arias
06 de Junio del 2005
Puedes usar las clase java.util.Vector o java.util.ArrayList, las implementaciones y los metodos son un poco distintos a un Arreglo normal, pero no son dificiles de manejar, si tienes problemas utliza la referencia de java