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

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


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


Хотя это [[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}}, и работает как '''библиотека'''.

== Архитектура ==
Почти все коллекции в Java порождаются интерфейсом '''{{Javadoc:SE|package=java.util|java.base/java/util|Collection}}''', который определяет основную структуру всех коллекций. Он определяет методы add() и remove() для добавления и удаления элементов, а также метод toArray(), который возвращает массив, состоящий из элементов данной коллекции. И, метод contains() проверяет содержится ли данный элемент в коллекции. Интерфейс Collection наследуется от интерфейса '''{{Javadoc:SE|package=java.lang|java.base/java/lang|Iterable}}'''.

=== Интерфейс 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 ===
Интерфейс '''{{Javadoc:SE|package=java.util|java.base/java/util|Set}}''' реализует концепцию множества. Множество не может содержать двух одинаковых элементов. К тому же множество не устанавливает порядок. Set имплементируется '''{{Javadoc:SE|package=java.util|java.base/java/util|HashSet}}''', '''{{Javadoc:SE|package=java.util|java.base/java/util|LinkedHashSet}}''' и '''{{Javadoc:SE|package=java.util|java.base/java/util|TreeSet}}'''.


== См. также ==
== См. также ==
* [[Контейнер (программирование)|Контейнер]]
* [[Контейнер (программирование)|Контейнер]]


== Примечания ==
{{примечания}}
== Ссылки ==
== Ссылки ==
* [http://java.sun.com/docs/books/tutorial/collections/ 'The Java Tutorials - Collections' by Josh Bloch]
* [http://java.sun.com/docs/books/tutorial/collections/ 'The Java Tutorials - Collections' by Josh Bloch]
Строка 15: Строка 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]


* [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 Platform, Standard Edition|Java SE]] 1.8


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

[[en:Java collections framework]]
{{изолированная статья}}

Текущая версия от 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.

Примечания

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