Повечето езици за програмиране използват масиви за съхранение на набор от данни от същия тип. Един основен недостатък на масивите е, че след като декларира размера на масива, той не може да бъде променен. Ако програмистът иска да съхранява стойности, надвишаващи размера на масива, тогава той трябва да създаде нов масив и да копира съществуващите елементи в новия масив. В тези ситуации могат да се използват колекции. Възможно е добавяне на елементи, изтриване на елементи и много други операции с поддръжката на колекции. Има различни видове колекции, налични в езици за програмиране като Java. Списък и Set са интерфейси на йерархията на колекциите. Основният интерфейс за други интерфейси е Collection. Най- ключова разлика между List и Set е това List поддържа съхранение на един и същ елемент няколко пъти, докато Set не поддържа съхранение на един и същ елемент няколко пъти. Следователно един комплект не позволява дублиране.
1. Преглед и ключова разлика
2. Какво е списък
3. Какво е зададено
4. Прилики между списък и набор
5. Едно до друго сравнение - списък срещу набор в таблична форма
6. Резюме
Списъкът е интерфейс, който разширява интерфейса на Collection. В интерфейса на Collection има редица методи. Методът на добавяне помага да се добави елемент. 'Методът за премахване' е да премахнете елемент. Има 'addAll метод' за добавяне на няколко елемента, докато 'removeAll метод' за премахване на елементите от колекцията. Методът съдържа помага да се установи дали конкретен обект присъства в списъка или не. „СъдържаAll“ е да открие дали в колекцията присъстват набор от обекти. Методът на итератора се използва за преминаване през елементите от списъка. Тъй като List разширява колекцията, всички методи за събиране принадлежат на List. Освен тези методи, списъкът има методи като get and set. Програмистът може да получи стойност в конкретен индекс, използвайки метод get. Програмистът може да зададе стойност в конкретен индекс, използвайки зададения метод. 'IndexOf' се използва за намиране на индекса на елемент.
В списък, операциите могат да се извършват според позицията. Програмистът може да предостави елемента с данни, който трябва да се добави към индекса. Така той ще бъде добавен към конкретния индекс. Ако програмистът не даде индекс, елементът ще бъде добавен в края на списъка. Той също поддържа вмъкнатия ред. Ако елемент 1 е добавен и след това елемент 2 е добавен, тогава елемент 1 ще бъде преди елемент 2.
Фигура 01: Списък и набор
ArrayList, LinkedList, Vector са някои класове, които прилагат List. В ArrayList достъпът до елемент е бърз, но вмъкването и изтриването е по-ниско. ArrayList не е безопасен за конци. Достъпът до един и същ ArrayList от множество нишки може да не даде един и същ резултат. В LinkedList елементите са свързани както назад, така и напред. Вмъкването и изтриването на елементи чрез LinkedList е по-бързо от ArrayList. LinkedList изпълнява List и Queue и двете. Vector е подобен на ArrayList, но е безопасен за протектора, тъй като всички методи са синхронизирани.
Set е интерфейс, който разширява интерфейса на Collection. Тъй като Set интерфейсът разширява Collection, всички методи на Collection също принадлежат на Set. A Set не поддържа стойности за дублиране. Следователно програмистът не може да съхранява един и същ елемент два пъти. Той поддържа уникален набор от елементи. Интерфейсът на SortedSet разширява настройка на интерфейса. SortedSet поддържа елементите в подреден ред. Интерфейсът на NavigableSet разширява SortedSet. NavigableSet предоставя навигационни методи като долен, етаж, таван и т.н..
HashSet, LinkedHashSet и TreeSet са някои класове, които реализират Set интерфейса. Най- HashSet реализира Задайте интерфейс. Той не поддържа вмъкнатия ред. Ако стойностите се вмъкнат като 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 няма да имат дублиращи се елементи.
Списък срещу Set | |
Списък с интерфейс е под интерфейсът на Collection, който съдържа методи за извършване на операции като вмъкване, изтриване въз основа на индекса. | Set Interface е под интерфейс на Collection, който съдържа методи за извършване на операции като вмъкване, изтриване на елементи, като същевременно се поддържат уникалните елементи. |
класове | |
ArrayList, Vector и LinkedList са класове, които реализират List интерфейс. | HashSet, LinkedHashSet и TreeSet са класове, които реализират Set интерфейс. |
Дублиране на елементи | |
Списъкът поддържа дублиране на елементи. | Set не поддържа дублиране на елементи. Елементите са уникални. |
Колекциите се използват за динамично съхраняване на елементи. Езици за програмиране като Java предоставя интерфейс за събиране. Списък и Set са два интерфейса, които принадлежат към интерфейса на Collection. И двата интерфейса разширяват колекцията. Тази статия обсъжда разликата между List и Set. Ключовата разлика между List и Set е, че List поддържа съхраняването на един и същ елемент няколко пъти, докато Set не поддържа съхранението на един и същ елемент многократно. Комплектът винаги поддържа уникални елементи.
1. Точка, уроци. „Колекции на Java.“, Учебни точки, 8 януари 2018 г. Налични тук