use ArrayList instead of LinkedList in BaseConstructor
diff --git a/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java b/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java
index 935f610..6635558 100644
--- a/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java
+++ b/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java
@@ -15,12 +15,12 @@
*/
package org.yaml.snakeyaml.constructor;
+import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -59,8 +59,8 @@
private final Map<Node, Object> constructedObjects;
private final Set<Node> recursiveObjects;
private final Stack<Tuple<Node, Object>> toBeConstructedAt2ndStep;
- private final LinkedList<Tuple<Map<Object, Object>, Tuple<Object, Object>>> maps2fill;
- private final LinkedList<Tuple<Set<Object>, Object>> sets2fill;
+ private final ArrayList<Tuple<Map<Object, Object>, Tuple<Object, Object>>> maps2fill;
+ private final ArrayList<Tuple<Set<Object>, Object>> sets2fill;
protected Class<? extends Object> rootType;
@@ -68,8 +68,8 @@
constructedObjects = new HashMap<Node, Object>();
recursiveObjects = new HashSet<Node>();
toBeConstructedAt2ndStep = new Stack<Tuple<Node, Object>>();
- maps2fill = new LinkedList<Tuple<Map<Object, Object>, Tuple<Object, Object>>>();
- sets2fill = new LinkedList<Tuple<Set<Object>, Object>>();
+ maps2fill = new ArrayList<Tuple<Map<Object, Object>, Tuple<Object, Object>>>();
+ sets2fill = new ArrayList<Tuple<Set<Object>, Object>>();
rootType = Object.class;
}
@@ -218,7 +218,7 @@
}
protected List<Object> createDefaultList(int initSize) {
- return new LinkedList<Object>();
+ return new ArrayList<Object>(initSize);
}
protected List<? extends Object> constructSequence(SequenceNode node) {
@@ -278,7 +278,7 @@
* initialization compared to clean just created one. And map of
* course does not observe key hashCode changes.
*/
- maps2fill.addFirst(new Tuple<Map<Object, Object>, Tuple<Object, Object>>(mapping,
+ maps2fill.add(0, new Tuple<Map<Object, Object>, Tuple<Object, Object>>(mapping,
new Tuple<Object, Object>(key, value)));
} else {
mapping.put(key, value);
@@ -306,7 +306,7 @@
* initialization compared to clean just created one. And set of
* course does not observe value hashCode changes.
*/
- sets2fill.addFirst(new Tuple<Set<Object>, Object>(set, key));
+ sets2fill.add(0, new Tuple<Set<Object>, Object>(set, key));
} else {
set.add(key);
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
index 7be6e42..5921062 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
@@ -19,7 +19,6 @@
* See LICENSE file in distribution for copyright and licensing information.
*/
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import junit.framework.TestCase;
@@ -44,7 +43,7 @@
String data = "[ 1, 2, 3 ]";
List<Object> list = construct(data);
assertNotNull(list);
- assertTrue(list.getClass().toString(), list instanceof LinkedList);
+ assertTrue(list.getClass().toString(), list instanceof ArrayList);
}
public void testDumpList() {