1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
8.8 总结.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

8.8 Подведение итогов

Давайте вспомним несколько коллекций, предоставляемых стандартной библиотекой Java (версий 1.0 и 1.1); BitSet не рассматривается здесь, так как представляет собой специализированную коллекцию:

(1) Массив хранит цифровые индексы объектов. Он может содержать объекты одного типа, поэтому при поиске объекта преобразование результата не требуется. Массив может быть многомерным и содержать примитивные типы данных. Однако после создания его размер нельзя изменять.

(2) Коллекция Vector также хранит цифровые индексы объектов — массив и Vector можно представить как случайные доступные множества. При добавлении новых элементов Vector автоматически изменяет свой размер. Но Vector может содержать только ссылки на объекты, поэтому он не может содержать примитивные типы данных; кроме того, при извлечении объекта из коллекции результат требует преобразования.

(3) Hashtable, являющаяся типом Dictionary, представляет способ связывания объектов с другими объектами. Hashtable также поддерживает случайный доступ к объектам, фактически её дизайн направлен на обеспечение высокой скорости доступа.

(4) Stack представляет последовательность "последний вошёл — первый вышел" (LIFO).Если вы знакомы с теорией структур данных, возможно, вас удивляет отсутствие более широкого набора коллекций. Из практической точки зрения, достаточно ли этого набора? Для Hashtable можно хранить любые данные и быстро их извлекать; для Enumeration можно проходить через последовательность и выполнять определённые действия над каждым элементом. Это мощный набор инструментов.Однако Hashtable не имеет понятия "порядка". Vector и массив предоставляют линейный порядок, но если нужно вставить элемент в середину любого из них, это обычно требует значительных затрат. Кроме того, очереди, деки, приоритетные очереди и деревья связаны с "сортировкой" элементов — не просто помещением их таким образом, чтобы они могли быть найдены или перемещены в линейном порядке позже. Эти структуры данных также очень полезны, именно поэтому они включены в стандарт C++. Исходя из этого, следует рассматривать коллекции стандартной библиотеки Java как отправную точку. В случае необходимости использования Java версий 1.0 или 1.1, когда требуется превзойти возможности этих версий, можно использовать JGL. Если можно использовать Java 1.2, то следует воспользоваться только новыми коллекциями, так как они обычно удовлетворяют все наши потребности. Обратите внимание, что в этой книге большое внимание уделено Java 1.1, поэтому многие коллекции, используемые в ней, доступны только в Java 1.1: Vector и Hashtable. В настоящее время это вынужденная мера. Однако такой подход также обеспечивает лучшую обратную совместимость со старым кодом на Java. При написании нового кода на Java 1.2 новые коллекции зачастую будут служить вам более эффективно.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master