mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 08:14:09 -08:00
classlib: fix implementations of SequencedCollection methods in ArrayList
This commit is contained in:
parent
55426b25cf
commit
e383b94e1b
|
@ -16,6 +16,7 @@
|
||||||
package org.teavm.classlib.java.util;
|
package org.teavm.classlib.java.util;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import org.teavm.classlib.java.io.TSerializable;
|
import org.teavm.classlib.java.io.TSerializable;
|
||||||
|
@ -66,12 +67,14 @@ public class TArrayList<E> extends TAbstractList<E> implements TCloneable, TSeri
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E getFirst() {
|
public E getFirst() {
|
||||||
return get(0);
|
checkIfNotEmpty();
|
||||||
|
return array[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E getLast() {
|
public E getLast() {
|
||||||
return get(size - 1);
|
checkIfNotEmpty();
|
||||||
|
return array[size - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -124,14 +127,22 @@ public class TArrayList<E> extends TAbstractList<E> implements TCloneable, TSeri
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E removeFirst() {
|
public E removeFirst() {
|
||||||
|
checkIfNotEmpty();
|
||||||
return remove(0);
|
return remove(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E removeLast() {
|
public E removeLast() {
|
||||||
|
checkIfNotEmpty();
|
||||||
return remove(size - 1);
|
return remove(size - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkIfNotEmpty() {
|
||||||
|
if (isEmpty()) {
|
||||||
|
throw new NoSuchElementException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E remove(int index) {
|
public E remove(int index) {
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.util.Iterator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.teavm.junit.TeaVMTestRunner;
|
import org.teavm.junit.TeaVMTestRunner;
|
||||||
|
@ -290,4 +291,35 @@ public class ArrayListTest {
|
||||||
lit.add("x");
|
lit.add("x");
|
||||||
assertEquals(List.of("d", "x", "a"), list);
|
assertEquals(List.of("d", "x", "a"), list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sequenceCollectionMethodsOnEmpty() {
|
||||||
|
var empty = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
empty.getFirst();
|
||||||
|
fail();
|
||||||
|
} catch (NoSuchElementException e) {
|
||||||
|
// ok
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
empty.getLast();
|
||||||
|
fail();
|
||||||
|
} catch (NoSuchElementException e) {
|
||||||
|
// ok
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
empty.removeFirst();
|
||||||
|
fail();
|
||||||
|
} catch (NoSuchElementException e) {
|
||||||
|
// ok
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
empty.removeLast();
|
||||||
|
fail();
|
||||||
|
} catch (NoSuchElementException e) {
|
||||||
|
// ok
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user