1. Overview
In this tutorial, We'll understand what is the limit of ArrayList or List implementations that can hold the maximum size.
But this is completely different from finding maximum value from ArrayList.
Before finding the max size of ArrayList, we need to understand that ArrayList collection API is implemented based on the ordinary arrays of java.
If the new ArrayList<Integer>(5) then a new ArrayList with the size of 5 is created and it can store 5 integer values.
2. Java Example to Find Default Max size of ArrayList
As we know the size of the ArrayList is can be retrieved using the ArrayList.size() method.
The below example is to get the default size of the ArrayList.
Example
package com.javaprogramto.java8.arraylist; import java.util.ArrayList; import java.util.List; public class ArrayListMaxSizeExample { public static void main(String[] args) { // default size is 10 List<Integer> intList = new ArrayList<>(); for (int i = 0; i < 10; i++) { intList.add(i); } System.out.println("Int list size (default) - " + intList.size()); } }
Output
Int list size (default) - 10
We used ArrayList.add() method to add integer valeus to arraylist.
3. Java Example to Find Default Max size of ArrayList
ArrayList.size() method returns the size of the list as integer value.
Integer max value is 2^31 and this value is equal to the 2147483647.
In the below example, we have created an ArrayList with the size of Integer.MAX_VALUE.
Let us compile and run this program to see the output.
Example
package com.javaprogramto.java8.arraylist; import java.util.ArrayList; import java.util.List; public class ArrayListMaxSizeExample2 { public static void main(String[] args) { System.out.println("Integer.MAX_VALUE - " + Integer.MAX_VALUE); System.out.println("Math.pow(2, 31) - " + (int) Math.pow(2, 31)); // default size is 10 int maxValue = Integer.MAX_VALUE - 1; List<Integer> intList = new ArrayList<>(maxValue); for (int i = 0; i < maxValue; i++) { intList.add(i); } System.out.println("Int list size - " + intList.size()); } }
Output
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0 Integer.MAX_VALUE - 2147483647 Math.pow(2, 31) - 2147483647 Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit at java.base/java.util.ArrayList.<init>(ArrayList.java:156) at com.javaprogramto.java8.arraylist.ArrayListMaxSizeExample2.main(ArrayListMaxSizeExample2.java:15)
That means you can not use the ArrayList with max size as Integer.MAX_VALUE. This itself is not able to create the array with the size of the max value. That's why we got the error "java.lang.OutOfMemoryError: Requested array size exceeds VM limit".
4. Conclusion
In this article, We've seen How much data can a List can hold at the maximum in java?
No comments:
Post a Comment
Please do not add any spam links in the comments section.