LinkList implements List<T> { @Override public T get(int where) { TNode<T> t = first; int i=0; while (i++<=where) { if (t.next == null) { throw new IndexOutOfBoundsException(); } t = t.next; } return t.data; } LinkList();  LinkList(Collection<T> c); @Override void clear(); @Override boolean add(T o); @Override void add(int where, T o); @Override boolean addAll(Collection<? extends T> c); @Override boolean addAll(int i, Collection<? extends T> c); @Override boolean contains(Object o); @Override T get(int where); @Override boolean isEmpty(); Iterator<T> iterator(); @Override boolean remove(Object o); @Override T set(int i, T o); @Override int size(); @SuppressWarnings("unchecked") T[] toArray(Object[] data); Object[] toArray(); TNode<T> find(int where); @Override T remove(int i); @Override boolean containsAll(Collection<?> c); @Override boolean retainAll(Collection<?> c); @Override int indexOf(Object o); @Override int lastIndexOf(Object o); @Override ListIterator<T> listIterator(); @Override ListIterator<T> listIterator(int where); @Override List<T> subList(int sub1, int sub2); @Override boolean removeAll(Collection<?> c);  }
@Test public void testGetSecond() { assertEquals("get element", testData[1], list.get(1)); }