Diferencia entre una HASHTABLE y un ARRAYLIST

Hola!!

Alguien me podría explicar cual es la diferencia entre un ArrayList y una Hashtable

Espero me puedan ayudar!! Gracias de antemano

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Javadoc

Revisa la documentación de ambas clases. En resumen, HashTable es un mapa mientras que ArrayList es una lista. Mapas y listas son estructuras de datos básicas que debes conocer cuando ves los principios de programación, en cualquier lenguaje (en C tienes que hacer las tuyas o usar alguna librería, en Java ya vienen varias implementaciones como ArrayList, Vector, HashMap, TreeMap, TreeSet, HashTable, etc).

En OOP, una lista es un objeto que puede almacenar una colección de objetos, los cuales son accesibles por índice, mientras que un mapa es un objeto que puede almacenar una colección de objetos, los cuales son accesibles por llaves, que a su vez son objetos (por ejemplo las llaves pueden ser Strings o Integers, etc). Los mapas también son conocidos como diccionarios. Esto es algo que debes ver en fundamentos de programación orientada a objetos, no es algo particular de Java.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Imagen de zedrik

Ampliando la respuesta yo te

Ampliando la respuesta yo te podria decir en base a Java que la naturaleza de las colecciones radican en el tipo de colección que es (List, Set, Map,) y si son ordered o sorted, es decir, ordered refiere a la naturaleza de la coleccion por lo cual un Arraylist es ordenado por un indice dado y por ejemplo un LinkedHashSet mantiene un orden como fueron insertados, por otro lado cuando se dice que la colleccion es sorted cuando refiere al orden natural de los datos ingresados, es decir, si ingresamos tipos de datos int el orden se hara en referencia a los numeros ingresados o si el tipo de datos es String el orden se realiza Alfabeticamente, Ahora la diferenca entre las colecciones que comentas te puedo decir que un Arraylist deciende de List las cuales se identifican por que manejan un indice y el HashTable es un Map los cuales se carcterizan por usar identifiacadores unicos basados en Hashcode para asociar a los objetos dentro de la colleccion por lo tanto entre mejor sea la implementación del Hashcode mejor sera el performance.

Te añado unas generalidades de las colecciones que comentas:

Un Arraylist provee iteración rapida y acceso aleatorio a los elementos ingresados, es ordered pero no sorted, es ordenado por un indice y requiere de un iteración.

Un HashTable es similar a la colección HashMap nada mas que este tiene sus metodos sincronizados ideal para utilizarlo en Threads, solo que este no permite valores nulos ni como ID ni como Datos a lo que el HashMap permite un solo ID nulo y muchos Datos nulos, es Unsorted y Unordered.

Saludos.