Ключевое различие - список против набора
Большинство языков программирования используют массивы для хранения набора данных одного типа. Одним из основных недостатков массивов является то, что после объявления размера массива его нельзя изменить. Если программист хочет сохранить значения, превышающие размер массива, он должен создать новый массив и скопировать существующие элементы в новый массив. В этих ситуациях можно использовать коллекции. Есть возможность добавлять элементы, удалять элементы и многие другие операции с поддержкой коллекций. Существуют различные типы коллекций, доступные на языках программирования, таких как Java. Список и Набор - это интерфейсы иерархии коллекций. Базовым интерфейсом для других интерфейсов является Collection. Ключевое различие между List и Set состоит в том, что List поддерживает сохранение одного и того же элемента несколько раз, а Set не поддерживает сохранение одного и того же элемента несколько раз. Следовательно,Набор не допускает дублирования.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что такое список
3. Что установлено
4. Сходства между списком и набором
5. Сопоставление бок о бок - список и набор в табличной форме
6. Резюме
Что такое список?
Список - это интерфейс, расширяющий интерфейс коллекции. В интерфейсе Collection есть несколько методов. Метод add помогает добавить элемент. «Метод удаления» - это удалить элемент. Существует метод addAll для добавления нескольких элементов и метод removeAll для удаления элементов из коллекции. Метод contains помогает определить, присутствует ли конкретный объект в списке или нет. "ContainsAll" определяет, присутствует ли в коллекции набор объектов. Метод итератора используется для перебора элементов списка. Поскольку List расширяет Collection, все методы Collection принадлежат List. Помимо этих методов, у List есть такие методы, как get и set. Программист может получить значение по определенному индексу, используя метод get. Программист может установить значение по определенному индексу, используя метод set. IndexOf используется для нахождения индекса элемента.
В списке операции могут выполняться в соответствии с положением. Программист может предоставить элемент данных, который будет добавлен в индекс. Таким образом, он будет добавлен в конкретный индекс. Если программист не укажет индекс, элемент будет добавлен в конец списка. Он также поддерживает вставленный порядок. Если элемент 1 добавлен, а затем добавлен element2, то element1 будет перед element2.
Рисунок 01: Список и набор
ArrayList, LinkedList, Vector - это классы, реализующие List. В ArrayList доступ к элементу выполняется быстро, но вставка и удаление происходит быстрее. ArrayList не является потокобезопасным. Доступ к одному и тому же списку ArrayList из нескольких потоков может не дать одинаковый результат. В LinkedList элементы связаны как назад, так и вперед. Вставка и удаление элементов с помощью LinkedList выполняется быстрее, чем ArrayList. LinkedList реализует как список, так и очередь. Vector похож на ArrayList, но он безопасен, поскольку все методы синхронизированы.
Что установлено?
Set - это интерфейс, расширяющий интерфейс Collection. Поскольку интерфейс Set расширяет Collection, все методы Collection также принадлежат Set. Набор не поддерживает повторяющиеся значения. Следовательно, программист не может хранить один и тот же элемент дважды. Он поддерживает уникальный набор элементов. Интерфейс SortedSet расширяет интерфейс Set. SortedSet поддерживает элементы в отсортированном порядке. Интерфейс NavigableSet расширяет SortedSet. NavigableSet предоставляет такие методы навигации, как нижний, пол, потолок и т. Д.
HashSet, LinkedHashSet и TreeSet - это классы, реализующие интерфейс Set. HashSet реализует интерфейс Set. Он не поддерживает вставленный порядок. Если значения вставлены как a, x, b, они могут быть сохранены как, x, a, b. LinkedSet поддерживает вставленный порядок. Если элементы вставлены в порядке a, x, b, порядок сохранения будет a, x, b. TreeSet реализует Set и NavigableSet. Он не поддерживает порядок вставки, но сохраняет элементы в отсортированном порядке. Если вставлен порядок a, c, b, то элементы будут сохранены как a, b, c. Все HashSet, LinkedHashSet и TreeSet не будут иметь повторяющихся элементов.
В чем сходство между списком и множеством?
- Интерфейсы List и Set расширяют интерфейс Collection.
- И List, и Set поддерживают такие операции, как добавление и удаление элементов.
В чем разница между списком и набором?
Список против набора |
|
Интерфейс списка - это подчиненный интерфейс Collection, который содержит методы для выполнения таких операций, как вставка и удаление на основе индекса. | Set Interface - это подчиненный интерфейс Collection, который содержит методы для выполнения таких операций, как вставка, удаление элементов с сохранением уникальных элементов. |
Классы | |
ArrayList, Vector и LinkedList - это классы, реализующие интерфейс List. | HashSet, LinkedHashSet и TreeSet - это классы, реализующие интерфейс Set. |
Дублирование элемента | |
Список поддерживает дублирование элементов. | Набор не поддерживает дублирование элементов. Элементы уникальны. |
Резюме - список vs набор
Коллекции используются для динамического хранения элементов. Языки программирования, такие как Java, предоставляют интерфейс Collection. List и Set - это два интерфейса, которые принадлежат интерфейсу Collection. Оба интерфейса расширяют Collection. В этой статье обсуждалась разница между List и Set. Ключевое различие между List и Set состоит в том, что List поддерживает сохранение одного и того же элемента несколько раз, а Set не поддерживает сохранение одного и того же элемента несколько раз. Set всегда сохраняет уникальные элементы.