diff --git a/core/src/main/java/io/parsingdata/metal/data/ImmutableList.java b/core/src/main/java/io/parsingdata/metal/data/ImmutableList.java index 5fbf4bbc..6d469b91 100644 --- a/core/src/main/java/io/parsingdata/metal/data/ImmutableList.java +++ b/core/src/main/java/io/parsingdata/metal/data/ImmutableList.java @@ -17,6 +17,7 @@ package io.parsingdata.metal.data; import static java.util.Collections.unmodifiableList; +import static java.util.stream.Collectors.toList; import static io.parsingdata.metal.Util.checkNotNull; @@ -27,12 +28,12 @@ import java.util.List; import java.util.ListIterator; import java.util.Objects; -import java.util.stream.Collectors; import java.util.stream.Stream; import io.parsingdata.metal.ImmutableObject; import io.parsingdata.metal.Util; + public class ImmutableList extends ImmutableObject implements List { private final List innerList; @@ -50,7 +51,7 @@ public static ImmutableList create(final T head) { } public static ImmutableList create(final T[] array) { - return new ImmutableList<>(new LinkedList<>(Arrays.stream(array).collect(Collectors.toList()))); + return new ImmutableList<>(Arrays.stream(array).collect(toList())); } public ImmutableList addHead(final T head) { @@ -96,21 +97,6 @@ public T get(int index) { return innerList.get(index); } - @Override - public T set(int index, T element) { - throw new UnsupportedOperationException(); - } - - @Override - public void add(int index, T element) { - throw new UnsupportedOperationException(); - } - - @Override - public T remove(int index) { - throw new UnsupportedOperationException(); - } - @Override public int indexOf(Object o) { return innerList.indexOf(o); @@ -164,23 +150,38 @@ public Object[] toArray() { } @Override - public T1[] toArray(T1[] a) { + public T[] toArray(T[] a) { return innerList.toArray(a); } @Override - public boolean add(T t) { + public boolean containsAll(Collection c) { + return innerList.containsAll(c); + } + + @Override + public T set(int index, T element) { throw new UnsupportedOperationException(); } @Override - public boolean remove(Object o) { + public void add(int index, T element) { throw new UnsupportedOperationException(); } @Override - public boolean containsAll(Collection c) { - return innerList.containsAll(c); + public T remove(int index) { + throw new UnsupportedOperationException(); + } + + @Override + public boolean add(T t) { + throw new UnsupportedOperationException(); + } + + @Override + public boolean remove(Object o) { + throw new UnsupportedOperationException(); } @Override