public class MutableList<T> implements List<T> { private Object[] elements; private int size; public MutableList() { this.elements = new Object[10]; this.size = 0; } public boolean add(T element) { ensureCapacity(size + 1); elements[size++] = element; return true; } public T remove(int index) { T oldElement = (T) elements[index]; int numMoved = size - index - 1; if (numMoved > 0) { System.arraycopy(elements, index + 1, elements, index, numMoved); } elements[--size] = null; return oldElement; } public T set(int index, T element) { T oldElement = (T) elements[index]; elements[index] = element; return oldElement; } public void forEach(Consumer<? super T> action) { for (int i = 0; i < size; i++) { action.accept((T) elements[i]); } } } public interface Collection<T> { // ... default Collection<T> filter(Predicate<? super T> predicate) { MutableList<T> result = new MutableList<>(); for (T element : this) { if (predicate.test(element)) { result.add(element); } } return result; } // ... } <dependency> <groupId>org.eclipse.collections</groupId> <artifactId>eclipse-collections-api</artifactId> <version>xxx</version> </dependency>


上一篇:
下一篇:
切换中文