import java.util.AbstractList; import java.util.List; public class ReverseList extends AbstractList { private final List L; public ReverseList(List L) { this.L = L; } public int size() { return L.size(); } public Item get(int k) { return L.get(L.size()-k-1); } public void add(int k, Item x) { L.add(L.size()-k, x); } public Item set(int k, Item x) { return L.set(L.size()-k-1, x); } public Item remove(int k) { return L.remove(L.size() - k - 1); } }