Two very different collection classes. An ArrayList behaves just like an array, except that it will dynamically expand and contract when you add/remove elements to it. A HashTable is useful when you want to lookup objects indexed by a 'key' value. It also dynamically expands and contracts but doesn't impose an order on the elements like an array does. Put a different way: you index elements in an ArrayList with a numeric index, you index elements in a HashTable with a key.
Array List..1.Array List is a List2.In this we can only add items to the list3.Here we Can Add any datatype value,Every item in arraylist is treated as objectHash Table..1.Hash Table is a map2.Here we can add data with the key3.Retrieving by key in Hashtable is faster than retrieving in Arraylist
ArrayList and Hashtable Contain two parameter first is Key and other is Value but ArrayList Key must be numeric and in case of Hash Table key may be numeric or Alpha.Secondly Arraylist is slower as compare to Hashtable..hashtable is basically use for maintaining huge data but arraylist dont haveOne another related to this topic is StringDictionary this too much faster than these Arraylist and Hashtable using System.collection.
An ArrayList is a dynamic array that grows as new items are added that go beyond the current capacity of the list. Items in ArrayList are accessed by index, much like an array. The Hashtable data structure is typically an array but instead of accessing via an index, you access via a key field which maps to a location in the hashtable by calling the key object's GetHashCode() method.In general, ArrayList and Hashtable are discouraged in .NET 2.0 and above in favor of List and Dictionary which are much better generic versions that perform better and don't have boxing costs for value types.