История изменений
Исправление
Legioner,
(текущая версия)
:
Как можно было во времена java 1.6 (2006 год) догадаться что через 10 лет будет хайп на лямбды?
А при чём тут хайп на лямбды? List раньше был вообще довольно ублюдочным интерфейсом и как его можно было имплементировать без AbstractList я не знаю, какие-то мазохисты видимо это делали. Его изначально сделали криво и лямбды тут не при чём.
Вот полный список методов в List в 1.4, которые предлагается реализовывать (и ещё что-то из Collection лень уже копировать):
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator iterator();
Object[] toArray();
Object[] toArray(Object a[]);
boolean add(Object o);
boolean remove(Object o);
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean addAll(int index, Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
void clear();
boolean equals(Object o);
int hashCode();
Object get(int index);
Object set(int index, Object element);
void add(int index, Object element);
Object remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator listIterator();
ListIterator listIterator(int index);
List subList(int fromIndex, int toIndex);
хотя реально достаточно реализовать гораздо меньше.
Про разделение списков на ReadOnly и Mutable на уровне типов я даже не говорю, хотя стоило бы. Тоже сложно было догадаться что-ли.
Исправление
Legioner,
:
Как можно было во времена java 1.6 (2006 год) догадаться что через 10 лет будет хайп на лямбды?
А при чём тут хайп на лямбды? List раньше был вообще довольно ублюдочным интерфейсом и как его можно было имплементировать без AbstractList я не знаю, какие-то мазохисты видимо это делали. Его изначально сделали криво и лямбды тут не при чём.
Вот полный список методов в List в 1.4, которые предлагается реализовывать:
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator iterator();
Object[] toArray();
Object[] toArray(Object a[]);
boolean add(Object o);
boolean remove(Object o);
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean addAll(int index, Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
void clear();
boolean equals(Object o);
int hashCode();
Object get(int index);
Object set(int index, Object element);
void add(int index, Object element);
Object remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator listIterator();
ListIterator listIterator(int index);
List subList(int fromIndex, int toIndex);
хотя реально достаточно реализовать гораздо меньше.
Про разделение списков на ReadOnly и Mutable на уровне типов я даже не говорю, хотя стоило бы. Тоже сложно было догадаться что-ли.
Исходная версия
Legioner,
:
Как можно было во времена java 1.6 (2006 год) догадаться что через 10 лет будет хайп на лямбды?
А при чём тут хайп на лямбды? List раньше был вообще довольно ублюдочным интерфейсом и как его можно было имплементировать без AbstractList я не знаю, какие-то мазохисты видимо это делали. Его изначально сделали криво и лямбды тут не при чём.
Вот полный список методов в List в 1.4, которые предлагается реализовывать:
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator iterator();
Object[] toArray();
Object[] toArray(Object a[]);
boolean add(Object o);
boolean remove(Object o);
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean addAll(int index, Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
void clear();
boolean equals(Object o);
int hashCode();
Object get(int index);
Object set(int index, Object element);
void add(int index, Object element);
Object remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator listIterator();
ListIterator listIterator(int index);
List subList(int fromIndex, int toIndex);
хотя реально достаточно реализовать гораздо меньше.
Про разделение списков на ReadOnly и Mutable на уровне типов я даже не говорю, хотя стоило бы. Тоже сложно было догадаться что ли.