You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2013/02/07 16:12:21 UTC

svn commit: r1443538 - /commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java

Author: tn
Date: Thu Feb  7 15:12:21 2013
New Revision: 1443538

URL: http://svn.apache.org/viewvc?rev=1443538&view=rev
Log:
[COLLECTIONS-312] use known collection size when creating arrays / lists.

Modified:
    commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java

Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java?rev=1443538&r1=1443537&r2=1443538&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections/map/AbstractReferenceMap.java Thu Feb  7 15:12:21 2013
@@ -514,13 +514,13 @@ public abstract class AbstractReferenceM
 
         @Override
         public Object[] toArray() {
-            return toArray(new Object[0]);
+            return toArray(new Object[size()]);
         }
 
         @Override
         public <T> T[] toArray(final T[] arr) {
             // special implementation to handle disappearing entries
-            final ArrayList<Map.Entry<K, V>> list = new ArrayList<Map.Entry<K, V>>();
+            final ArrayList<Map.Entry<K, V>> list = new ArrayList<Map.Entry<K, V>>(size());
             for (final Map.Entry<K, V> entry : this) {
                 list.add(new DefaultMapEntry<K, V>(entry));
             }
@@ -540,13 +540,13 @@ public abstract class AbstractReferenceM
 
         @Override
         public Object[] toArray() {
-            return toArray(new Object[0]);
+            return toArray(new Object[size()]);
         }
 
         @Override
         public <T> T[] toArray(final T[] arr) {
             // special implementation to handle disappearing keys
-            final List<K> list = new ArrayList<K>(parent.size());
+            final List<K> list = new ArrayList<K>(size());
             for (final K key : this) {
                 list.add(key);
             }
@@ -566,13 +566,13 @@ public abstract class AbstractReferenceM
 
         @Override
         public Object[] toArray() {
-            return toArray(new Object[0]);
+            return toArray(new Object[size()]);
         }
 
         @Override
         public <T> T[] toArray(final T[] arr) {
             // special implementation to handle disappearing values
-            final List<V> list = new ArrayList<V>(parent.size());
+            final List<V> list = new ArrayList<V>(size());
             for (final V value : this) {
                 list.add(value);
             }