Разница между множеством и списком

Разница между списком массивов и связанным списком

Прежде чем мы перейдем к фактическим различиям, давайте узнаем, что они на самом деле?

Что такое набор?

Мы сталкивались с понятием Сета в математике, и Сетка здесь более или менее означает то же самое. Да, это набор элементов и в большинстве случаев набор похожих элементов. Вы можете попробовать добавить эти элементы в набор и попробовать распечатать, чтобы понять, как он на самом деле хранится.

Вход в набор: 20, 50, 10, 30.

На самом деле он хранится в наборе как 10, 20, 30, 50.

Элементы сортируются здесь и хранятся не в порядке их вставки. Это одна из особенностей Set, которая всегда сортирует элементы перед сохранением и, конечно, есть исключения из этого, и один из них - LinkedhashSet, поскольку он поддерживает порядок вставки элементов.

В компьютерных терминах Набор включает несколько дополнительных свойств, таких как Методы и Наследование. Методы аналогичны функциям и выполняют определенные задачи, такие как добавление, удаление или итерация по набору элементов. Большинству из нас хорошо известен термин Наследование, и здесь он означает то же самое. Да, мы можем наследовать метод из его коллекции, чтобы его можно было использовать с интерфейсом набора. Опять же, мы говорим о новом термине, т. Е. Об интерфейсе набора, и это не более чем весь набор элементов, включая методы..

Как это реализовать?

Просто для лучшего понимания мы представили Set с его синтаксисом. Из приведенного ниже синтаксиса вы можете определить различные типы Set, такие как HashSet и TreeSet.

импорт java.util. *;

открытый класс Setexample

public static void main (String args [])

int count [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = new HashSet ();

пытаться

для (int i = 0; i < 5; i++)

Set.add (кол [I]);

System.out.println (комплект);

TreeSet sortedSeteg = new TreeSet (set);

System.out.println («Здесь у нас есть отсортированный вывод:»);

System.out.println (sortedSeteg);

System.out.println («Посмотрите на первый элемент:« + (Integer) sortedSet.first ());

System.out.println («Посмотрите на последний элемент:« + (Integer) sortedSet.last ());

поймать (исключение е)

Вывод приведенного выше кода выглядит следующим образом.

[25, 17, 76, 12, 88]
Здесь у нас есть отсортированный вывод:
[12, 17, 25, 76, 88]
Посмотрите на Первый элемент: 12
Посмотрите на последний элемент: 88

Что такое список?

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

Вход в список: Джон, Нэнси, Мэри, Алиса.

Как это хранится в списке: Джон, Нэнси, Мэри, Алиса.

Просто обратите внимание на порядок, в котором они вставлены. Вы можете определить, что «Джон» является первым элементом ввода, а также вывода, и за ним следует тот же порядок, в котором вставляются имена. Мы можем даже считать это одним из основных свойств List.

Как это реализовать?

Давайте рассмотрим несколько методов List, таких как ArrayList и LinkedList, в приведенном ниже синтаксисе..

импорт java.util. *;
открытый класс Collectionssample

public static void main (String [] args)

List a1 = new ArrayList ();
a1.add ( «John»);
a1.add ( «Нанси»);
a1.add ( «Мэри»);
a1.add ( «Алиса»);
System.out.println («Элементы ArrayList есть»);
System.out.print («\ t» + a1);

Список l1 = новый LinkedList ();
l1.add ( «Сильвия»);
l1.add ( «Арджун»);
l1.add ( «Дипика»);
l1.add ( «Susan»);
System.out.println ();
System.out.println («Элементы LinkedList»);
System.out.print («\ t» + l1);

Вывод вышеуказанного синтаксиса выглядит следующим образом.

Элементы ArrayList

[Джон, Нэнси, Мэри, Алиса]

Элементы LinkedList

[Сильвия, Арджун, Дипика, Сьюзен]

Из приведенного выше кода очень ясно, что ArrayList и LinkedList поддерживают порядок вставки..

Чем они отличаются?

  • Методы и описания:

Набор и Список имеют свои собственные методы, и давайте посмотрим на некоторые из них здесь.

S.No Set - Методы Список - Методы
1. добавлять() - Это добавить объекты в коллекцию. void add (int index, Object obj) - Он добавляет объект 'obj' по указанному 'индексу' списка вызовов и гарантирует, что ни один элемент не будет перезаписан путем смещения предыдущих элементов..
2. Чисто() - Это для удаления объектов из коллекции. логическое addAll (индекс int, коллекция c) - Он добавляет всю коллекцию 'c' в список вызова и по указанному 'index'. Это также гарантирует, что никакие элементы не будут перезаписаны. Мы также можем проверить правильность его работы, изучив возвращаемое значение. Он возвращает «true», если изменение прошло успешно, в противном случае он возвращает значение «false».
3. содержит() - Он должен проверить, содержит ли Набор определенный объект. Возвращает значение true, если объект присутствует в наборе. Объект get (int index) - Возвращает элемент или объект по указанному «индексу».
4. пустой() - Он должен определить, помогает ли коллекция, так как в ней нет элементов. Возвращает значение true, если элемента нет. int lastIndexOf (Object obj) - Это работает аналогично обратной индекс() Метод. Он возвращает последнее вхождение указанного объекта obj, и возвращается значение «1», если в списке нет такого объекта. Поэтому его также можно использовать как содержит() Способ установки интерфейса.
6. удалять() - Это удалить элемент из коллекции, указав его в качестве параметра метода. ListIterator listIterator () - Возвращает итератор в начальный индекс списка.
7. размер() - Это подсчитать количество объектов или элементов, которые имеет коллекция. ListIterator listIterator (int index) - Это помогает в переборе вызывающего Списка, начинающегося с указанного индекса.
8. - Удалить объект (int index) - Он удаляет объект по указанному «индексу» и возвращает удаленный элемент как результат. Это также уменьшает результирующие индексы списка, чтобы отразить удаление.
9. - Набор объектов (int index, Object obj) - Он должен назначить объект obj списку вызова по указанному индексу.
10. - Список подсписков (int start, int end) - Он должен включать объекты из индекса «начало» в индекс «конец» в список, который вызвал метод.
  • Обслуживание заказа на вставку:

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

Устанавливать Вход: кот, кукла, яблоко.

Хранится как: яблоко, кошка, кукла.

Ввод списка: кошка, кукла, яблоко.

Хранится как: кошка, кукла, яблоко.

  • Наличие дубликатов:

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

Установить вход: 10, 20, 20, 50.

Хранится как: 10, 20, 50.

Ввод списка: 10, 20, 20, 50.

Хранится как: 10, 20, 20, 50.

  • Нулевые значения:

Набор может иметь только одно нулевое значение, тогда как список может иметь более одного нулевого значения и не ограничен каким-либо числом..

Установить вход: нуль, ноль, человек, собака, самолет.

Хранится как: ноль, собака, человек, самолет.

Ввод списка: ноль, ноль, человек, собака, самолет.

Хранится как: ноль, ноль, человек, собака, самолет.

  • Использование Iterator & ListIterator:

Метод Iterator хорошо работает как с Set, так и с List, тогда как метод ListIterator работает только с List. ListIterator может использоваться для перемещения как вперед, так и назад по списку.

  • Наличие Legacy Class:

Set не имеет унаследованного класса, тогда как интерфейс List имеет унаследованное имя, называемое вектором. Вектор использует интерфейс List и, следовательно, поддерживает порядок вставки. Благодаря усилиям по синхронизации производительность вектора в добавлениях, удалениях и обновлениях немного ниже.

  • Реализации:

Некоторые из реализаций Set - это HashSet, LinkedHashSet и TreeSet. Немногие из реализаций List включают ArrayList и LinkedList.

Когда использовать Set & List?

Использование Set и List полностью зависит от требования поддержания порядка вставки. Поскольку мы узнали, что Set никогда не поддерживает порядок вставки, его можно использовать, когда порядок имеет меньшее значение. Аналогичным образом, используйте список, когда вам нужно сохранить последовательность вставки, а также.

Отличия в табличной форме:

S.No Отличия в Устанавливать Список
1. Порядок вставки Он поддерживает порядок вставки. Первый вставленный остается на первом месте и так далее, независимо от его стоимости. Это никогда не поддерживает порядок вставки.
2. методы Он использует методы, такие как add (), clear (), contains (), isEmpty (), remove () и size (). Он использует методы, такие как add (), addAll (), get (), lastIndexOf (), ListIterator () с параметром или без него, remove (), set () и subList ().
3. Дубликаты Он никогда не допускает дублирования, и в случае таких появлений значение перезаписывается. Это позволяет дубликаты.
4. Нулевые значения Максимальное значение может быть только одно. Может иметь любое количество нулевых значений..
5. Использование Iterator () и listIterator () Он использует только метод iterator (). Он использует как iterator (), так и listIterator ().
6. Присутствие Legacy Class Класса Legacy нет. Класс Legacy называется вектором.
7. Реализации Немного из реализаций интерфейса Set - HashSet, LinkedHashSet и Tree Set. Немного из реализаций интерфейса List - это LinkedList и ArrayList.

Надеюсь, мы включили все возможные различия между множеством и списком. Если вы чувствуете, что мы что-то упустили, пожалуйста, дайте нам знать.