diff options
author | Sven Gothel <[email protected]> | 2014-08-16 11:31:04 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-08-16 11:31:04 +0200 |
commit | 6de8ace67b26f039fb1c89a3fce4d5f2437c615c (patch) | |
tree | 02da4909cf84dcd1d1c4712b7732ff4b78b1d8b4 /src/java | |
parent | e2be0d00dcd28dc7d6b5df444e2ede80edd7cad5 (diff) |
IntIntHashMap: Reduce temp. ArrayList<Entry> instances in clone
Diffstat (limited to 'src/java')
-rw-r--r-- | src/java/com/jogamp/common/util/IntIntHashMap.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/java/com/jogamp/common/util/IntIntHashMap.java b/src/java/com/jogamp/common/util/IntIntHashMap.java index 954b379..f78b1e0 100644 --- a/src/java/com/jogamp/common/util/IntIntHashMap.java +++ b/src/java/com/jogamp/common/util/IntIntHashMap.java @@ -162,18 +162,19 @@ public class /*name*/IntIntHashMap/*name*/ implements Cloneable, mask, capacity, threshold, keyNotFoundValue); + final ArrayList<Entry> entries = new ArrayList<Entry>(); for(int i=table.length-1; i>=0; i--) { // single linked list -> ArrayList - final ArrayList<Entry> entries = new ArrayList<Entry>(); Entry se = table[i]; while(null != se) { entries.add(se); se = se.next; } // clone ArrayList -> single linked list (bwd) + final int count = entries.size(); Entry de_next = null; - for(int j=entries.size()-1; j>=0; j--) { - se = entries.get(j); + for(int j=count-1; j>=0; j--) { + se = entries.remove(j); if( isPrimitive ) { de_next = new Entry(se.key, se.value, de_next); } else { |