Разлика между List и Set в Java

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 15 Може 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Видео: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Съдържание


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

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениесписък Комплект
ОсновенСписък поддържа последователността на елементите, съхранявани в списък.Set не поддържа особено ред на вмъкване, но, Linked HashSet поддържа реда на вмъкване.
удвояванеСписъкът може да има дублиращи се елементи в него.Методът add () връща невярно, ако се опитате да вмъкнете дублиращите се елементи.
методиВ допълнение към методите, дефинирани в Collection, Списък определя някои свои методи.Set не определя никакъв допълнителен метод.
изпълнение Списъкът се изпълнява от ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Комплектът се реализира от HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Определение на списъка

Интерфейсът на списъка разширява интерфейса за колекция. Списък е подредена колекция от елементи или обекти. За разлика от Set, List може да съдържа дублиращи се елементи. В допълнение към методите, дефинирани в Collection List, дефинира някои свои методи като метод get () и set (), базиран на индекс. Методите add () и remove () наследени от Collection, който добавя или премахва посочения елемент от индекса, посочен в аргумента на метода. Списъкът е вид масив, чийто размер нараства, когато добавяме елементи към списъка.

Списък не дефинира метод за работа с диапазона от индекси в списъка. Той дефинира метод sublist (), който връща подпис от първоначалния списък на определен диапазон. Промените, които правите в подписа, също се появяват в оригиналния списък. Интерфейсът на списъка се реализира от ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.

Определение за Set

Интерфейсът на Set разширява интерфейса на Collection. Интерфейсът за задаване е колекция или група от обекти, които не съдържат никакъв дублиращ обект в него. Това означава, че две препратки не могат да се отнасят към един обект, или една препратка не може да се отнася до два обекта, или не може да има две препратки, отнасящи се до Null. Редът или последователността на елемента не е важен Set, но не е, че той забранява подредения набор.


Интерфейсът за настройка не определя нито един метод в допълнение към метода, определен в Collection. Вместо това ограничава методите на събиране add () и addall (), за да добави всеки дублиращ обект в колекция. Ако се опитате да добавите дублиращ обект в колекция, използвайки метода add () на Collection, той връща невярно. В противен случай тя връща вярно. Интерфейсът за настройка се реализира от HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Последователността на елементи / обект в колекция се поддържа в Списък, докато Set не поддържа реда на елементите, но има изключение LinkedHashSet поддържа реда на вмъкване.
  2. Списъкът може да има дублиращи се елементи, тъй като идентифицира всеки елемент с неговия индекс, но Set не позволява никакви дублиращи елементи, тъй като няма никакъв елемент от типа индекс, който да идентифицира всеки обект в колекция.
  3. Списък дефинира някои методи самостоятелно, в допълнение към методите, дефинирани в Collection. От друга страна, Set не дефинира нито един свой собствен метод, но ограничава методите на Collection за добавяне на дублиращи се елементи.
  4. Списъкът се изпълнява от ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack интерфейси. От друга страна, Set е реализиран от HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet интерфейси.

Заключение:

Използването на List и Set интерфейс зависи от изискването. Ако редът на обектите / елементите е важен, тогава трябва да използвате List интерфейс. Ако не се нуждаете от дублиращи се елементи в колекцията си, тогава трябва да използвате Set интерфейс