Обзор коллекции

Java задняя часть алгоритм WeChat

предисловие

Заявление, в этой статье используется JDK1.8

Начиная с сегодняшнего дня, чтобы официально изучить самые важные вещи в основах Java--->собирать

Независимо от развития, этот пункт знаний очень важен в интервью.Поэтому я провожу здесь много времени, и мне приходится обращаться к большому количеству информации.Следующее может не обновляться каждый день...

Конечно, если вы ошиблись местом, пожалуйста, включите его и не стесняйтесь исправить.

1. Введение в коллекцию

1.1 Зачем нужна коллекция

  1. Java — объектно-ориентированный язык, и работа с объектами неизбежна.
  2. Чтобы облегчить манипулирование несколькими объектами, мы должны хранить эти несколько объектов
  3. Если вы хотите хранить несколько объектов (переменных), легко придумать одинконтейнер
  4. Обычно используемые контейнеры, мы знаем, что есть -> StringBufted, массивы (хотя есть массивы объектов, длина массива неизменной!)
  5. Поэтому 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

img

Проект с открытым исходным кодом, охватывающий все точки знаний о бэкэнде Java (уже 6 тысяч звезд):GitHub.com/Zhongf UC очень…

если ты хочешьв реальном времениЕсли вы обратите внимание на мои обновленные статьи и галантерейные товары, которыми я делюсь, поищите в WeChat.Java3y.

Содержание документов PDFвсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня(В официальном аккаунте есть мои контактные данные).