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() {