Almost always List
is preferred over ArrayList
because, for instance, List
can be translated into a LinkedList
without affecting the rest of the codebase.
If one used ArrayList
instead of List
, it’s hard to change the ArrayList
implementation into a LinkedList
one because ArrayList
specific methods have been used in the codebase that would also require restructuring.
You can read about the List
implementations here.
You may start with an ArrayList
, but soon after discover that another implementation is the more appropriate choice.
Related Posts:
- How to avoid “ConcurrentModificationException” while removing elements from `ArrayList` while iterating it? [duplicate]
- Difference between Arrays.asList(array) and new ArrayList
(Arrays.asList(array)) - Convert list to array in Java [duplicate]
- Converting array to list in Java
- Convert Set to List without creating new List
- Generic Interface
- Implements vs extends: When to use? What’s the difference?
- stale element reference: element is not attached to the page document
- Why do I get an UnsupportedOperationException when trying to remove an element from a List?
- How to initialize List
object in Java? - Is there a concurrent List in Java’s JDK?
- “Instantiating” a List in Java? [duplicate]
- Create a List of primitive int?
- How to print out all the elements of a List in Java?
- List of Arrays in Java
- Incompatible types List of List and ArrayList of ArrayList
- Can a normal Class implement multiple interfaces?
- Why is there no multiple inheritance in Java, but implementing multiple interfaces is allowed?
- Fields in interfaces
- How to print out all the elements of a List in Java?
- What’s the difference between HashSet and Set?
- convert string to arraylist
in java - How do I join two lists in Java?
- When to use a Map instead of a List in Java?
- What is the purpose of the default keyword in Java?
- Error message ‘Cannot be resolved or is not a field’
- javac is not recognized as an internal or external command, operable program or batch file [closed]
- What is a StackOverflowError?
- How to uninstall Eclipse?
- How do I determine whether an array contains a particular value in Java?
- How can I solve Exception in thread “main” java.lang.NullPointerException error [duplicate]
- Why am I getting a NoClassDefFoundError in Java?
- Using Pairs or 2-tuples in Java [duplicate]
- Bad Operand Types for Binary Operator “>”?
- Error occurred during initialization of boot layer FindException: Module not found
- ‘mvn’ is not recognized as an internal or external command, operable program or batch file
- How to use multiple classes in java in one file?
- Java: Multiple class declarations in one file
- Why do JVM arguments start with “-D”?
- How to split a string in Java
- Printing out a linked list using toString
- Received fatal alert: handshake_failure through SSLHandshakeException
- Javadoc @see or {@link}?
- Remote debugging a Java application
- What’s the difference between next() and nextLine() methods from Scanner class?
- How to identify object types in java
- What is the result of making log4j additivity equals to true or false?
- Attempt to invoke virtual method ‘…’ on a null object reference
- Is there a Mutex in Java?
- maven error: package org.junit does not exist
- ClassNotFoundException: org.slf4j.LoggerFactory
- Problems with setting the classpath in ant
- Spring Data JPA Update @Query not updating?
- Error: JavaFX runtime components are missing, and are required to run this application with JDK 11
- Extracting .jar file with command line
- UnsatisfiedDependencyException: Error creating bean with name
- Change priorityQueue to max priorityqueue
- Only using @JsonIgnore during serialization, but not deserialization
- Cannot change version of project facet Dynamic Web Module to 3.0?
- InvalidKeyException Illegal key size
- imageio.IIOException: Can’t read input file
- Difference between OpenJDK and Adoptium/AdoptOpenJDK
- Compile failed; see the compiler error output for details
- Java: Rotating Images
- What is the default initialization of an array in Java?
- java sort using anonymous class
- How to fix the Hibernate “object references an unsaved transient instance – save the transient instance before flushing” error
- channel 3: open failed: connect failed: Connection refused
- Java Currency Number format
- How to create a generic array in Java?
- Print a boolean value with printf
- Meaning of @Resource annotation
- How to solve error lossy convertion from int to char?
- What does “error: ‘.class’ expected” mean and how do I fix it
- How do I get the size of a java.sql.ResultSet?
- Java: How to set Precision for double value?
- Any way to declare an array in-line?
- java.io.StreamCorruptedException: invalid stream header: 54657374
- How to cast ArrayList<> from List<>
- Best way to “negate” an instanceof
- java.lang.ArrayIndexOutOfBoundsException: 0
- What’s wrong with overridable method calls in constructors?
- what is the difference between doGet() and doPost() in term of the flow?
- Java 3D Game Engine?
- How to cast ArrayList<> from List<>
- Using insertion sort for descending order?
- What is the home directory for JDK?
- java.lang.ClassNotFoundException: org.postgresql.Driver, Android
- Javadoc @author tag good practices
- A fatal error has been detected by the Java Runtime Environment: SIGSEGV, libjvm
- java.lang.IllegalStateException: Failed to introspect Class
- ShoppingCart.Java Program Assignment
- White spaces are required between publicId and systemId
- Http status 401 This request requires HTTP authentication (). in tomcat 6
- Get integer value of the current year in Java
- How to make the division of 2 ints produce a float instead of another int?
- Java Console Prompt for ENTER input before moving on [duplicate]
- Can’t load IA 32-bit .dll on a AMD 64-bit platform
- Android Studio 2.2.3: Gradle project sync failed. Basic functionality (e.g. editting, debugging) will not work properly
- How to draw a circle with given X and Y coordinates as the middle spot of the circle?