Choosing the right collection
How do you choose the right collection for specific cases? I'm sure many of us have asked that question at least once. Let me try to help you to make the right choice:
The
List
,Set
(such asLinkedHasSet
), andMap
(such asLinkedHashMap
) classes are perfect choices for general purposes. They have enough functionality to cover all of your needs.Choosing a class implements the minimum functionality that you require. Don't choose a class that supports sorting if you don't actually need it.
Here is a table that combines all the classes with the supported features:
Class |
Order |
Sort |
Random access |
Key-values |
Duplicates |
Null |
---|---|---|---|---|---|---|
|
Yes |
Yes |
Yes |
No |
Yes |
Yes |
|
Yes |
No |
No |
No |
Yes |
Yes |
|
Yes |
No |
No |
No |
No |
No |
|
No |
No |
No |
No |
No |
No |
|
Yes |
Yes |
No |
No |
No |
No |
|
Yes |
Yes |
No |
No |
Yes |
Yes |
|
Yes |
No |
Yes |
Yes |
No |
Yes |
|
No |
No |
Yes |
Yes |
No |
Yes... |