Java tutorial
//package com.java2s; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static <T> List<T> tail(List<T> list) { if (list.size() == 0) { throw new IllegalStateException("tail of empty list"); } List<T> workList = copy(list); workList.remove(0); return Collections.unmodifiableList(workList); } private static <T> List<T> copy(List<T> ts) { return new ArrayList<>(ts); } }