2017-01-15 15 views
2

Я пытаюсь понять некоторые основные вещи. Я изучал стандартную библиотеку ArrayList.java, когда обнаружил, что ArrayList имеет реализацию метода isEmpty().Реализация isEmpty()

ArrayList.java:

public boolean isEmpty() { 
    return size == 0; 
} 

ArrayList расширяет AbstractList расширяет AbstractCollection. И AbstractCollection имеет реализацию isEmpty:

public boolean isEmpty() { 
    return size() == 0; 
} 

Я просто пытаюсь получить логику? Почему ArrayList реализует уже реализованный метод? Зачем?

P.S. ArrayList также имеет размер

public int size() { 
    return size; 
} 
+0

Возможно, вырезать ненужный вызов метода. – shmosel

+2

Потому что не каждая коллекция предоставляет локальное поле 'size', и в этом случае это * специальность * (или * оптимизация *). –

+0

Эффективность и самосознание. –

ответ

3

Версия ArrayList является небольшой, но эффективной, оптимизацией.

+2

[править] – shmosel

+0

Как вы фактически просматриваете класс ArrayList в eclipse? Это где-то в библиотеке? –

+0

Ну, я думаю, я понял это сейчас, спасибо! Ник Зибер, я смотрел объявления всего, что я видел на экране с помощью Alt + B. – Nederes

 Смежные вопросы

  • Нет связанных вопросов^_^