предисловие
Текст был включен в мой репозиторий GitHub, добро пожаловать, звезда:GitHub.com/bin39232820…
Лучшее время посадить дерево было десять лет назад, затем сейчас
болтовня
Неосознанно сам написал более десяти статей.Спасибо за внимание.Буду продолжать усердно работать. Далее поговорим о Java-контейнерах, а сколько статей и подробностей можно написать, давайте посмотрим и попробуем углубиться.
Вам не нужно читать исходный код для записи с нуля.Перед собеседованием вы должны просмотреть и прочитать исходный код (это точка знаний, которую необходимо проверить на собеседовании)!
Происхождение коллекции
Обычно нашей Java-программе необходимо знать, сколько объектов создается в соответствии со временем выполнения программы. Но если программа не запущена, на этапе разработки программы мы не знаем, сколько объектов нужно или даже точного типа. Чтобы удовлетворить эти общие потребности программирования, мы требуем, чтобы любое количество объектов могло быть создано в любое время и в любом месте, и для чего используются эти объекты? Сначала мы подумали о массивах, но! Массив может хранить данные только одного типа, а его длина фиксирована, так что же мне делать? Коллекция появилась.
Различия между коллекциями и массивами:
Схема сбора
На самом деле самое главное - говорить об этих немногих в моем кругу.
Пакеты в Java.util Давайте рассмотрим его сверху вниз. В этой статье мы поговорим о нескольких интерфейсах верхнего уровня. Конкретные контейнеры будут рассмотрены один за другим.
Итератор итератор
Мы можем найти особенность, что все вышеперечисленные классы коллекций, кроме коллекции серии карт, то есть коллекции слева, реализуют интерфейс Iterator
Это интерфейс верхнего уровня для коллекций Java (за исключением коллекций серий карт, интерфейс Map — это интерфейс верхнего уровня для коллекций серий карт)
Object next(): возвращает ссылку на элемент, только что переданный итератором.Возвращаемое значение — Object, который необходимо привести к нужному типу.
boolean hasNext(): определяет, есть ли в контейнере еще доступные элементы.
void remove(): удаляет элемент, только что переданный итератором.
Таким образом, в дополнение к набору серий карт мы можем просматривать элементы в наборе через итератор.
Примечание. Мы можем проследить интерфейс верхнего уровня коллекции в исходном коде, такой как интерфейс Collection, и увидеть, что он наследует класс Iterable.
Тогда есть Iterator в Iterable
Поговорим об Iterator подробнее
Всего 4 метода
- Проверьте, есть ли у следующего итератора следующий элемент
- Возвращает значение следующего элемента и сдвигает его смещение на следующий бит
- Третий метод Это может удалить элементы в этом наборе итераторов (обратите внимание, что если итератор, полученный ранее, все еще удаляется после удаления, вы обнаружите, что исходный итератор не изменился, и вам нужно восстановить итератор после удаленного элемента)
- Новый метод версии 1.8 может напрямую проходить по оставшимся элементам итератора.Если он начинается с самого начала, то он должен проходить по всем итераторам (функциональное программирование версии 1.8 — это очень круто, и оно будет добавлено позже в блоге).
Итак, я пытаюсь сказать, что у всех коллекций есть итераторы, которые можно использовать для обхода, ха, это превосходная степень всех коллекций.
ListIterator
Почему вы хотите об этом говорить, я не собирался говорить об этом, но я подумал об этом, и если я хочу это написать, то напишите полностью.
ListIterator — это подинтерфейс Iterator, ListIterator может выполнять итерацию не только назад, но и вперед. По сравнению с Итератором,
- Он добавляет эти методы:
- boolean hasPrevious();
- E previous();
- int nextIndex();
- int previousIndex();
- void set(E e);
- void add(E e);
По сути, это увеличение операции, которую можно прописать вперед. Вы можете написать тестовый метод и попробовать его самостоятельно, а также заменить повторяющиеся элементы методом set().
Знакомство с интерфейсом коллекции
Роль Collection заключается в указании основных операций над коллекцией.
В основном это такие операции, как вставка данных, очистка данных, определение того, включены ли они, равны ли они, количество данных в коллекции и зрелая группа преобразования.
Например:
int size() Получить количество элементов
boolean isEmpty(), равно ли число нулю
логическое значение содержит (элемент объекта) Содержит ли указанный элемент
boolean add(E element) Добавить элемент, вернуть true в случае успеха
boolean remove(Object element) удаляет элемент, возвращает true в случае успеха
Итератор iterator() Получить итератор Поток 1.8 поток (чаще используется позже)
Существуют также методы для управления целыми коллекциями, например:
boolean containsAll(Collection> c) Содержать ли все элементы указанной коллекции c
boolean addAll(Collection extends E> c) Добавляет все элементы коллекции c в эту коллекцию и возвращает true, если коллекция изменилась
boolean removeAll(Collection> c) удаляет элементы в этой коллекции, которые согласуются с коллекцией c, и возвращает true, если коллекция изменилась
boolean continueAll(Collection> c) Сохранить то, что является общим для обоих в коллекции c в этой коллекции, и вернуть true, если коллекция изменилась
void clear() удаляет все элементы
Существуют также методы работы с массивами: Object[] toArray() возвращает массив, содержащий все элементы коллекции
T[] toArray(T[] a) Возвращает массив, содержащий все элементы коллекции, с указанием типа массива во время выполнения в соответствии с типом элементов коллекции.
конец
Введение в коллекцию контейнеров закончено, позже я подробно расскажу об их конкретной реализации, все учатся и развиваются вместе.
Поскольку блогер тоже новый разработчик, я также пишу во время обучения. У меня есть цель - две-три статьи в неделю. Надеюсь, я смогу придерживаться этого в течение года. Надеюсь, вы можете дать больше мнений, позвольте мне узнать больше. и добивайтесь прогресса вместе.
ежедневные комплименты
Хорошо всем, вышеизложенное является полным содержанием этой статьи. Люди, которые могут видеть это здесь, всеталант.
Творить нелегко. Ваша поддержка и признание — самая большая мотивация для моего творчества. Увидимся в следующей статье.
Six Meridians Excalibur | Text [Original] Если в этом блоге есть какие-то ошибки, прошу покритиковать и посоветовать, буду очень признателен!