предисловие
Заявление, в этой статье используется JDK1.8
Начиная с сегодняшнего дня, чтобы официально изучить самые важные вещи в основах Java--->собирать
Независимо от развития, этот пункт знаний очень важен в интервью.Поэтому я провожу здесь много времени, и мне приходится обращаться к большому количеству информации.Следующее может не обновляться каждый день...
Конечно, если вы ошиблись местом, пожалуйста, включите его и не стесняйтесь исправить.
1. Введение в коллекцию
1.1 Зачем нужна коллекция
- Java — объектно-ориентированный язык, и работа с объектами неизбежна.
- Чтобы облегчить манипулирование несколькими объектами, мы должны хранить эти несколько объектов
- Если вы хотите хранить несколько объектов (переменных), легко придумать одинконтейнер
- Обычно используемые контейнеры, мы знаем, что есть -> StringBufted, массивы (хотя есть массивы объектов, длина массива неизменной!)
- Поэтому Java предоставляет нам коллекцию (Collection)~
1.2 Разница между массивом и коллекцией
Далее мы можем проанализировать разницу между массивами и множествами:
Разница между массивом и коллекцией:
- 1: разница в длине
- Фиксированная длина массива
- Наборы имеют переменную длину
- 2: Контент не разрешен
- Массивы хранят элементы одного типа
- Коллекции могут хранить элементы разных типов (но обычно мы этого не делаем..)
- 3: тип данных элемента
- Массивы могут хранить как примитивные типы данных, так и ссылочные типы.
- Коллекция может хранить только ссылочные типы (вы просто сохраняете int, она автоматически будет упакована в Integer)
1.3 Происхождение и функция Коллекции
Происхождение коллекции:
- Коллекции могут хранить несколько элементов, но мыСуществуют также разные потребности в нескольких элементах.
- Несколько элементов не могут иметь одинаковые
- Несколько элементов, которые можно отсортировать по определенному правилу
- Для разных потребностей: Java предоставляет множество коллекций, различных структур данных несколько классов коллекций. Однако структура не важна, важноспособен хранить, судить, приобретать
- положить коллекциюОбщий контент постоянно извлекается, и, наконец, сформировать систему наследования коллекции---->Collection
Общая структура коллекции выглядит следующим образом:
Однако, как правило, нам не нужно так много осваивать, достаточно освоить некоторые часто используемые классы коллекций. Ниже яте, что обведены:
Еще раз уточнение:
Основные функции Коллекции:
Во-вторых, введение в итератор (Iterator)
Мы можем обнаружить, что исходный код Collection наследует Iterable, и есть метод iterator()...
Нажмите и посмотрите, Iterable — это интерфейс:
Он имеет метод iterator(), который возвращаетIterator
Посмотрите еще раз, Iterator — это тоже интерфейс, у него всего три метода:
- hasNext()
- next()
- remove()
Однако мы не смогли найти соответствующий метод реализации, поэтому мы могли искать только в подклассе Collection, поэтому мы нашли ---> ArrayList (об этом классе будет сказано позже)
Итак, мы нашли реализацию итератора в ArrayList: он находится в ArrayList сРеализация внутреннего классаиз! И из исходного кода мы знаем:Итератор фактически перебирает коллекцию
Итак: мыIterator можно использовать для обхода элементов коллекции (Collection), Что касается его конкретной реализации, то она реализована в виде внутреннего класса!
3. Введение в коллекцию списков
Как видно из вышеизложенного, Collection в основном изучает два типа коллекций:Установить и перечислить, тут в основном объясняют Лист!
Давайте посмотрим на методы интерфейса списка, которые немного больше, чем коллекция:
- Коллекция списковФункцииэто:Упорядоченный (порядок хранения и порядок извлечения совпадают), повторяемый
Collection возвращает интерфейс Iterator, а List имеет собственную соответствующую реализацию -->Интерфейс ListIterator
Этот интерфейс имеет несколько больше методов, чем обычный интерфейс Iterator:
Вы можете сказать из названия метода:ListIterator может перемещаться вперед, добавлять элементы, устанавливать элементы
3.1 Общие подклассы коллекций List
Существует три часто используемых подкласса коллекции List:
- ArrayList
- Базовая структура данных представляет собой массив. поток небезопасен
- LinkedList
- Базовая структура данных представляет собой связанный список. поток небезопасен
- Vector
- Базовая структура данных представляет собой массив. потокобезопасность
Теперь я знаю, что есть три часто используемых класса коллекций, и позже будет открыта новая статья, чтобы объяснить~
В-четвертых, введение коллекции Set
Из методов коллекции Set видно, что методов не больше, чем Collection
- Характеристики коллекции Set:Элементы не могут повторяться
4.1 Общие подклассы наборных коллекций
- Hashset Collection
- О: Базовая структура данных — это хеш-таблица (массив, элементы которого представляют собой связанные списки).
- Коллекция наборов деревьев
- A: Базовая структура данных представляет собой красно-черное дерево (самобалансирующееся двоичное дерево).
- B: Гарантия порядка элементов
- Коллекция LinkedHashSet
- О: Базовая структура данных состоит из хеш-таблицы и связанного списка.
5. Наконец
Эта статья в основном резюмирует основные моменты коллекции и не углубляется в различные классы коллекций.Эта часть оставлена для объяснения в недавно открытой главе, так что следите за обновлениями~~
Завтра день подметания гробниц (отправляюсь домой), в эти два дня коллекция не будет обновляться.Если у вас есть время дома, вы можете почистить несколько вопросов по алгоритму, а затем обновить официальный аккаунт после сортировки~
Оглавление Навигация по статьям:Город Чжунфу.bit cron.com/post/hand-just…
Использованная литература:
- Core Java
- Структура данных и анализ алгоритма, Java Language Описание
Если в статье есть какие-либо ошибки, пожалуйста, поправьте меня, и мы сможем общаться друг с другом. Учащиеся, привыкшие читать технические статьи в WeChat и желающие получить больше ресурсов по Java, могутОбратите внимание на публичный аккаунт WeChat: Java3y
Проект с открытым исходным кодом, охватывающий все точки знаний о бэкэнде Java (уже 6 тысяч звезд):GitHub.com/Zhongf UC очень…
если ты хочешьв реальном времениЕсли вы обратите внимание на мои обновленные статьи и галантерейные товары, которыми я делюсь, поищите в WeChat.Java3y.
Содержание документов PDFвсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня(В официальном аккаунте есть мои контактные данные).