Разлика между списък и набор

Съдържание:

Разлика между списък и набор
Разлика между списък и набор

Видео: Разлика между списък и набор

Видео: Разлика между списък и набор
Видео: В чем разница между списками и кортежами в python? 2024, Ноември
Anonim

Ключова разлика – списък срещу набор

Повечето езици за програмиране използват масиви за съхраняване на набор от данни от същия тип. Един основен недостатък на масивите е, че след като размерът на масива бъде деклариран, той не може да бъде модифициран. Ако програмистът иска да съхранява стойности, надвишаващи размера на масива, тогава той трябва да създаде нов масив и да копира съществуващите елементи в новия масив. В тези ситуации могат да се използват колекции. Възможно е добавяне на елементи, изтриване на елементи и много други операции с поддръжката на колекции. Има различни видове колекции, налични в езици за програмиране като Java. List и Set са интерфейси на йерархията на колекциите. Базовият интерфейс за други интерфейси е Collection. Ключовата разлика между List и Set е, че List поддържа съхраняване на един и същ елемент многократно, докато Set не поддържа съхраняване на един и същ елемент многократно. Следователно наборът не позволява дублиране.

Какво е списък?

Списъкът е интерфейс, който разширява интерфейса на колекцията. Има редица методи в интерфейса на колекцията. Методът add помага за добавяне на елемент. „Методът за премахване“е да премахнете елемент. Има „метод addAll“за добавяне на множество елементи, докато „метод removeAll“за премахване на елементите от колекцията. Методът съдържа помага да се установи дали определен обект присъства в списъка или не. „containsAll“е да открие дали набор от обекти присъства в колекцията. Методът на итератора се използва за преминаване през елементите от списъка. Тъй като List разширява Collection, всички методи на Collection принадлежат на List. Освен тези методи, списъкът има методи като get и set. Програмистът може да получи стойност на конкретен индекс, като използва метода get. Програмистът може да зададе стойност на конкретен индекс, като използва метода set. „IndexOf“се използва за намиране на индекса на елемент.

В списък операциите могат да се извършват според позицията. Програмистът може да предостави елемента от данни, който трябва да бъде добавен към индекса. Така че ще бъде добавен към конкретния индекс. Ако програмистът не даде индекс, елементът ще бъде добавен в края на списъка. Той също така поддържа въведения ред. Ако се добави елемент 1 и след това се добави елемент2, тогава елемент1 ще бъде преди елемент2.

Разлика между списък и набор
Разлика между списък и набор

Фигура 01: Списък и набор

ArrayList, LinkedList, Vector са някои класове, които имплементират List. В ArrayList достъпът до елемент е бърз, но вмъкването и изтриването е по-малко. ArrayList не е безопасен за нишки. Достъпът до един и същ ArrayList от множество нишки може да не даде същия резултат. В LinkedList елементите са свързани както към назад, така и към напред. Вмъкването и изтриването на елементи с помощта на LinkedList е по-бързо от ArrayList. LinkedList прилага списък и опашка и двете. Vector е подобен на ArrayList, но е безопасен, защото всички методи са синхронизирани.

Какво е Set?

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?

  • Интерфейсите List и Set разширяват интерфейса Collection.
  • Както List, така и Set поддържат операции като добавяне, премахване на елементи.

Каква е разликата между списък и набор?

Списък срещу набор

List Interface е подинтерфейсът на Collection, който съдържа методи за извършване на операции като вмъкване, изтриване въз основа на индекса. Set Interface е подинтерфейс на Collection, който съдържа методи за извършване на операции като вмъкване, изтриване на елементи, като същевременно се поддържат уникалните елементи.
Класове
ArrayList, Vector и LinkedList са класове, които имплементират List интерфейс. HashSet, LinkedHashSet и TreeSet са класове, които имплементират Set интерфейс.
Дублиране на елемент
Списъкът поддържа дублиране на елементи. Set не поддържа дублиране на елементи. Елементите са уникални.

Резюме – списък срещу набор

Колекциите се използват за динамично съхраняване на елементи. Езиците за програмиране като Java предоставят интерфейс за събиране. List и Set са два интерфейса, които принадлежат към интерфейса на Collection. И двата интерфейса разширяват колекцията. Тази статия обсъди разликата между List и Set. Ключовата разлика между List и Set е, че List поддържа съхраняване на един и същ елемент многократно, докато Set не поддържа съхраняване на един и същ елемент многократно. Наборът винаги поддържа уникални елементи.

Препоръчано: