From d00ab6533d79beb9f14b8c7c421c26eddfea5fa3 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 26 Sep 2017 20:10:54 +0200 Subject: [PATCH] use a static final empty array if list is empty --- .../main/java/org/lucares/collections/IntList.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/primitiveCollections/src/main/java/org/lucares/collections/IntList.java b/primitiveCollections/src/main/java/org/lucares/collections/IntList.java index 7df8898..2353816 100644 --- a/primitiveCollections/src/main/java/org/lucares/collections/IntList.java +++ b/primitiveCollections/src/main/java/org/lucares/collections/IntList.java @@ -18,6 +18,8 @@ public class IntList { */ private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; + private static final int[] EMPTY_ARRAY = {}; + private int[] data; private int index = 0; @@ -43,7 +45,7 @@ public class IntList { "initial capacity must not be negative and not larger than " + MAX_ARRAY_SIZE); } - data = new int[initialCapacity]; + data = initialCapacity > 0 ? new int[initialCapacity] : EMPTY_ARRAY; } /** @@ -283,9 +285,13 @@ public class IntList { * Call this method to reduce the memory consumption of this list. */ public void trim() { - final int[] newData = new int[index]; - System.arraycopy(data, 0, newData, 0, index); - data = newData; + if (index == 0) { + data = EMPTY_ARRAY; + } else { + final int[] newData = new int[index]; + System.arraycopy(data, 0, newData, 0, index); + data = newData; + } } @Override