Java Collections Framework: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
чозанах 8-)
м Интерфейс List: викификация
 
(не показаны 4 промежуточные версии 3 участников)
Строка 1: Строка 1:
{{wikibooks|Java Programming|Collections}}
{{wikibooks|Java Programming|Collections}}


'''[[Java]] collections framework (JCF)''' — это набор связанных [[Класс (программирование)|классов]] и [[Интерфейс (объектно-ориентированное программирование)|интерфейсов]], реализующих широко используемые [[Структура данных|структуры данных]] — [[Коллекция (программирование)|коллекции]]. Он был спроектирован и разработан, в первую очередь, [[Джошуа Блох]]ом.
''[[Java]] collections framework '' — это набор связанных [[Класс (программирование)|классов]] и [[Интерфейс (объектно-ориентированное программирование)|интерфейсов]], реализующих широко используемые [[Структура данных|структуры данных]] — [[Коллекция (программирование)|коллекции]]. Он был спроектирован и разработан, в первую очередь, [[Джошуа Блох]]ом.


Хотя это [[framework]]<ref>[https://www.quora.com/Why-is-Collection-in-Java-called-a-framework-but-not-a-library-It-seems-counter-intuitive-to-the-definition-of-a-framework-which-follows-the-Dont-call-us-well-call-you-principle Why-is-Collection-in-Java-called-a-framework-but-not-a-library]</ref>, он не имеет явных [[Критический участок кода|критических участков кода]]{{Нет АИ|24|12|2015}}, и работает как '''библиотека'''.
Хотя это [[framework]]<ref>[https://www.quora.com/Why-is-Collection-in-Java-called-a-framework-but-not-a-library-It-seems-counter-intuitive-to-the-definition-of-a-framework-which-follows-the-Dont-call-us-well-call-you-principle Why-is-Collection-in-Java-called-a-framework-but-not-a-library]</ref>, он не имеет явных [[Критический участок кода|критических участков кода]]{{Нет АИ|24|12|2015}}, и работает как '''библиотека'''.
Строка 9: Строка 9:


=== Интерфейс List ===
=== Интерфейс List ===
В JCF списки реализуются через интерфейс '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}'''. Два конкретных класса имплементируют List. Первый, '''{{Javadoc:SE|package=java.util|java.base/java/util|ArrayList}}''', который реализует список на основе массива. Второй реализацией является '''{{Javadoc:SE|package=java.util|java.base/java/util|LinkedList}}''', который реализует '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}''' как двусвязный список.
В JCF списки реализуются через интерфейс '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}'''. Два конкретных класса имплементируют List. Первый, '''{{Javadoc:SE|package=java.util|java.base/java/util|ArrayList}}''', который реализует список на основе массива. Второй реализацией является '''{{Javadoc:SE|package=java.util|java.base/java/util|LinkedList}}''', который реализует '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}''' как [[двусвязный список]].


=== Интерфейс Set ===
=== Интерфейс Set ===
Строка 26: Строка 26:


* [http://www-128.ibm.com/developerworks/java/library/j-tiger07195/ Taming Tiger: The Collections Framework]
* [http://www-128.ibm.com/developerworks/java/library/j-tiger07195/ Taming Tiger: The Collections Framework]
* [http://javalessons.com/cgi-bin/fun/java-tutorials-main.cgi?sub=adv&ses=ao789 Collections Lessons]
* [https://web.archive.org/web/20150306171304/http://javalessons.com/cgi-bin/fun/java-tutorials-main.cgi?sub=adv&ses=ao789 Collections Lessons]


* [https://web.archive.org/web/20090704095801/http://www.collectionspy.com/ CollectionSpy - a Java profiler that focuses on the Collections Framework]
* [https://web.archive.org/web/20090704095801/http://www.collectionspy.com/ CollectionSpy - a Java profiler that focuses on the Collections Framework]
* [https://github.com/soulaway/jse8collectionBenchmark/blob/master/benchmark.res Collections benchmark] (insertions, iterations) Java SE 1.8
* [https://github.com/soulaway/jse8collectionBenchmark/blob/master/benchmark.res Collections benchmark] (insertions, iterations) [[Java Platform, Standard Edition|Java SE]] 1.8


[[Категория:Java]]
[[Категория:Java]]

Текущая версия от 07:32, 26 марта 2022

Java collections framework — это набор связанных классов и интерфейсов, реализующих широко используемые структуры данныхколлекции. Он был спроектирован и разработан, в первую очередь, Джошуа Блохом.

Хотя это framework[1], он не имеет явных критических участков кода[источник не указан 3305 дней], и работает как библиотека.

Архитектура

[править | править код]

Почти все коллекции в Java порождаются интерфейсом java.util.Collection, который определяет основную структуру всех коллекций. Он определяет методы add() и remove() для добавления и удаления элементов, а также метод toArray(), который возвращает массив, состоящий из элементов данной коллекции. И, метод contains() проверяет содержится ли данный элемент в коллекции. Интерфейс Collection наследуется от интерфейса java.lang.Iterable.

Интерфейс List

[править | править код]

В JCF списки реализуются через интерфейс java.util.List. Два конкретных класса имплементируют List. Первый, java.util.ArrayList, который реализует список на основе массива. Второй реализацией является java.util.LinkedList, который реализует java.util.List как двусвязный список.

Интерфейс Set

[править | править код]

Интерфейс java.util.Set реализует концепцию множества. Множество не может содержать двух одинаковых элементов. К тому же множество не устанавливает порядок. Set имплементируется java.util.HashSet, java.util.LinkedHashSet и java.util.TreeSet.

Примечания

[править | править код]