Vector ilimitado
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
public String[] fechaformat=new String [1000];
Lo que quiero es no tener que limitarlo en 1000 elementos.
Muchas gracias
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]
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]
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
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