Array
- represents an old-school memory array - kind of like a alias for a normal type[]
array. Can enumerate. Can't grow automatically. I would assume very fast insertion and retriv. speed.ArrayList
- automatically growing
array. Adds more overhead. Can enum., probably slower than a normal
array but still pretty fast. These are used a lot in .NETList
- one of my favs - can be used with generics, so you can have a strongly typed array, e.g. List
. Other than that, acts very much like ArrayList
.Hashtable
- plain old hashtable. O(1) to O(n) worst case. Can enumerate the value and keys properties, and do key/val pairs.Dictionary
- same as above only strongly typed via generics, such as Dictionary
but note
Hashtable
has less performance than Dictionary
because of Boxing
and Unboxing
.SortedList
- a sorted generic list.
Slowed on insertion since it has to figure out where to put things. Can
enum., probably the same on retrieval since it doesn't have to resort,
but deletion will be slower than a plain old list.I tend to use
List
and Dictionary
all the
time - once you start using them strongly typed with generics, its
really hard to go back to the standard non-generic ones.There are lots of other data structures too - there's
KeyValuePair
which you can use to do some interesting things, there's a SortedDictionary
which can be useful as well.Courtesy - Stackoverflow
No comments:
Post a Comment