Question: I am very new to Java. I have recently come across **fastutil** and found ObjectArrayList class.

Is there any difference in performance if ObjectArrayList is used instead of ArrayList? What are the use cases for using ObjectArrayList?

Answer: 
According to fastutil [documentation](http://fastutil.di.unimi.it/docs/it/unimi/dsi/fastutil/objects/ObjectArrayList.html)

> 
> A type-specific array-based list; provides some additional methods that use polymorphism to avoid (un)boxing.
> 
> 
> 

There is a performance benefit to fastutil's implementation in cases where [(un)boxing](https://stackoverflow.com/questions/27647407/why-do-we-use-autoboxing-and-unboxing-in-java) takes place. 

The `ObjectArrayList` is backed by a generic type array. Whereas an `ArrayList` is backed by `Object[]` Really the performance between the two would be nominal. However FWIW, looks like this library provides primitive backed arrays `IntArrayList` `DoubleArrayList` where these boxing claims would actually see visible benefits in large datasets.

However, if you're new to Java. I'd highly recommend getting familiar with [java.util.ArrayList](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) before seeking out other variants.In most cases, taking the standard outweighs the performance benefit.
You should not be concerned with performance when you start learning a new language. Focus on the basics. Write code that runs, and then write code that is useful. Speed and efficiency only matters when the code you write affects the world around you (such as writing code for work). Do not worry about fastutil and ObjectArrayList. Finish your application with ArrayList and if your app is too slow for you only then should you find something faster.