Java - ¿Qué estructura de datos usar?

 
Vista:

¿Qué estructura de datos usar?

Publicado por Juancho (2 intervenciones) el 15/10/2008 14:10:41
hola quisiera saber cuales es la estructura de datos más conveniente en el siguiente caso:

Quiero que el usuario me pase cadenas de caracteres a un método de mi clase java, pero quiero que las posibilidades de elegir estas cadenas este limitado y a su vez que la cantidad de estas cadenas sea un numero variable.

Se me habia ocurrido usar un vector por lo del numero variable de entradas, y además usar un Enum, Pero no entiendo una manera de usarlo adaptado a este caso

¿Algunas ideas?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Qué estructura de datos usar?

Publicado por Danilo Juvinao (278 intervenciones) el 15/10/2008 17:30:13
Creo que te estas complicando demasiado.

Para este sencillo caso, puedes recibir por parametros solamente un array de string. A este le puedes sacar la longitud con el metodo length() y listo.

Si no entendí bien, comentame.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Qué estructura de datos usar?

Publicado por Gerardo Aquino (62 intervenciones) el 20/10/2008 04:14:54
Lo que puedes hacer es usar una LinkedList que se encuentra en java.util, no tiene una limitacion a comparación de un Array de tipo String

la forma de usarlo es

Metodo Contructor
java.util.LinkedList lista = new java.util.LinkedList();

Agrega al final
lista.addLast(variable);

Agrega al inicio
lista.addFisrt(variable);

lo puedes usar como pila y/o cola, la interface vector funciona de la misma forma

para obtener dato de la lista
lista.get(posicion);

donde posicion es un dato de tipo entero mayor que 0

para sacar el iterador de la lista deberias de declarar una variable de tipo Iterator que se encuentra en java.util y asignarle el iterador de tu lista, esto se hace de la siguiente forma

java.util.Iterator it = lista.iterator();
(ojo que esto puede lanzar un NullPointerException

para hacer el recorrido desde principio a fin con el iterador previamente declarado:

while(it.hasNext()){
System.out.println(it.next().toString());
}

Cabe mencionar que LinkedList no solo alberga datos de un solo tipo si no que puede guardar multiples tipos de datos en una sola lista, esto quiere decir que puedo guardar un Integer, Boolean, String pero siempre son convertidos al tipo Object, notese que por eso en la linea de impresion le puse el metodo toString(), intenta quitarlseo y te generará un error, para limitarla a que solo guarde cierto tipo de dato necesitas identificarlo desde su metodo contructor

para una lista de String
java.util.LinkedList <String> lista = new java.util.LinkedList <String> ();

para una lista de Boolean
java.util.LinkedList <Boolean> lista = new java.util.LinkedList <Boolean> ();

para una lista de tipo Perro
java.util.LinkedList <Perro> lista = new java.util.LinkedList <Perro> ();


Esta estructura de datos podria resolverte tambien problemas con apuntadores e incluso arboles, aunque hay clases especificas para ello como TreeSet


Espero pueda servirte de algo, cualquier cosa ahi esta mi correo: [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar