BAEL-5931: Default Capacity of ArrayList (#13110)

This commit is contained in:
Azhwani 2022-12-02 18:50:50 +01:00 committed by GitHub
parent 5e21445e0f
commit 5f939afaf0
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,20 @@
package com.baeldung.defaultarraylistcapacity;
import java.lang.reflect.Field;
import java.util.ArrayList;
public class DefaultArrayListCapacity {
public static int getDefaultCapacity(ArrayList<?> arrayList) throws Exception {
if (arrayList == null) {
return 0;
}
Field field = ArrayList.class.getDeclaredField("elementData");
field.setAccessible(true);
return ((Object[]) field.get(arrayList)).length;
}
}

View File

@ -0,0 +1,33 @@
package com.baeldung.defaultarraylistcapacity;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
public class DefaultArrayListCapacityUnitTest {
@Test
void givenEmptyArrayList_whenGetDefaultCapacity_thenReturnZero() throws Exception {
ArrayList<Integer> myList = new ArrayList<>();
int defaultCapacity = DefaultArrayListCapacity.getDefaultCapacity(myList);
assertEquals(0, defaultCapacity);
}
@Test
void givenEmptyArrayList_whenAddItemAndGetDefaultCapacity_thenReturn10() throws Exception {
ArrayList<String> myList = new ArrayList<>();
myList.add("ITEM 1");
int defaultCapacity = DefaultArrayListCapacity.getDefaultCapacity(myList);
assertEquals(10, defaultCapacity);
}
}