Зачем писать два раза дженерики и что это дает? <T> ArrayList<T>