Java – When to Use a List Over an Array

arraysdata-structuresjavalist

In Java, when would it be preferential to use a List rather than an Array?

Best Answer

I see the question as being the opposite-

When should you use an Array over a List?

Only you have a specific reason to do so (e.g.: Project Constraints, Memory Concerns (not really a good reason), etc.)

Lists are much easier to use (imo) and have much more functionality.

Note: You should also consider whether or not something like a Set, or another data structure is a better fit than a List for what you are trying to do.

Each data structure, and implementation, has different pros/cons. Pick the ones that excel at the things that you need to do.

If you need get() to be O(1) for any item? Likely use an ArrayList, Need O(1) insert()? Possibly a Linked List. Need O(1) contains()? Possibly a Hashset.

TLDR: Each data structure is good at some things, and bad at others. Look at your objectives and choose the data structure that best fits the given problem.

Edit:

One thing not noted is that you're better off declaring the variable as its interface (i.e. List or Queue) rather than its implementing class. This way, you can change the implementation at some later date without changing anything else in the code.

As an example:

List<String> myList = new ArrayList<String>(); 

vs

List<String> myList = new LinkedList<String>();

Note that myList is a List in both examples. --R. Bemrose