LINUX.ORG.RU

История изменений

Исправление 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 на уровне типов я даже не говорю, хотя стоило бы. Тоже сложно было догадаться что ли.