Vector & Hashtable

Isabel
09 de Enero del 2004
Hola, Necesito utilizar la clase Vector para almacenar varios campos, y en algunos libros pone que esa clase está obsoleta (es de Java 1). ¿Se puede utilizar o se debe utilizar otra estructura? ¿Cual existe en Java que sea eficiente y que se pueda hacer lo mismo que con la clase Vector? He mirado las Hashtables pero solo pueden tener 2 campos de tipo String. ¿Cual es más eficiente? (más rápida o consuma menos recursos)

Heihachi
09 de Enero del 2004
La versión moderna de Vector es ArrayList.
Hashtable también está por motivos de compatibilidad, como Vector. Puedes usar HashMap en su lugar.

Arraylist y HashMap son ligeramente más rápidas que Vector y Hashtable

HashMap ocupa más espacio, pero es más eficiente.
También es un engorro... yo prefiero usar ArrayList si puedo elegir...

Saludos!

chuidiang
09 de Enero del 2004
Depende un poco lo que quieras. Vector es más eficiente que Hashtable.

Un Vector es como un array, pero que se redimensiona según le hace falta.

El HashTable hace que el indice del array pueda ser cualquier objeto (habitualmente un String), de forma que puedes acceder a un elemento concreto por "su nombre", en vez de por su posición.

También tienes los array a pelo (Object [] array), las LinkedList, etc, etc. Cada una es más adecuada para un uso determinado.

Un array es util cuando el numero de elementos es mas o menos fijo y se va a acceder a ellos de forma aleatoria (ahora quiero el item 7, luego el 3, despues el 15, etc).

Una lista es util cuando el numero de elementos varia mucho a lo largo del programa y se va a acceder a ellos de forma secuencial (primero el primero, luego el segundo, etc).

El HashTable cuando se quiere independizar al que lo usa de las posiciones que ocupa el elemento. Por ejemplo, imaginate que un Hashtable guardas los personajes de un juego y luego haces la consulta por el nombre del personaje.

En cada caso hay que evaluar ventajas e inconvenientes y decidirse por uno.

Se buena.

pepito grillo
09 de Enero del 2004
Eso eso, se buena....y golfa.
Llammame guapetona, q t voy a explicar yo lo kes un array
xD