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

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

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

Какво е комплект?

Попаднахме на концепцията за Set в математиката и Set тук повече или по-малко означава същото. Да, това е колекция от елементи и в повечето случаи е колекция от подобни елементи. Можете да опитате да добавите тези елементи към Set и да опитате да отпечатате, за да разберете как всъщност се съхранява.

Въвеждане на набор: 20, 50, 10, 30.

Всъщност се съхранява в Set as 10, 20, 30, 50.

Елементите са сортирани тук и се съхраняват не в реда им на вмъкване. Това е една от характеристиките на Set, че той винаги сортира елементите преди съхраняване и разбира се, има изключения от него и едно такова е LinkedhashSet, тъй като поддържа реда на вмъкване на елементите.

В компютърно отношение комплектът включва няколко допълнителни свойства като Методи и Наследяване. Методите са точно като функции и те изпълняват определени задачи като добавяне, премахване или повторение чрез набора от елементи. Повечето от нас са добре известни с термина Наследяване и това означава същото тук. Да, можем да наследим метод от неговата колекция, така че да може да се използва с Set Interface. Отново говорим за нов термин, т.е. зададения интерфейс, и той не е нищо повече от целия набор от елементи, включително методите.

Как да го приложим?

Само за по-добро разбиране, ние представихме набор с неговия синтаксис. От синтаксиса по-долу можете да идентифицирате различните видове Set, като HashSet и TreeSet.

import 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 = нов HashSet ();

опитвам

за (int i = 0; i < 5; i++)

set.add (брои [Ь]);

System.out.println (набор);

TreeSet sortedSeteg = нов TreeSet (комплект);

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

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

Списък разширява колекцията подобно на това, което направи Set, но поддържа реда на вмъкване. Опитвате се да добавите следните имена в списък и да видите как се добавя към него.

Входът към списък: Джон, Нанси, Мери, Алис.

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

Просто забележете реда, в който са поставени. Можете да идентифицирате, че „Джон“ е първият елемент във входа, както и в изхода и е последван от същия ред, в който са вмъкнати имената. Дори можем да считаме това за едно от основните свойства на List.

Как да го приложим?

Нека разгледаме няколко от методите на List като ArrayList и LinkedList в синтаксиса по-долу.

import java.util. *;
Примерна колекция за обществена класа

public static void main (String [] args)

Списък a1 = нов ArrayList ();
a1.add ( "John");
a1.add ( "Nancy");
a1.add ( "Мария");
a1.add ( "Alice");
System.out.println („Елементите на ArrayList са“);
System.out.print (“\ t” + a1);

Списък l1 = нов LinkedList ();
l1.add ( "Silvia");
l1.add ( "Arjun");
l1.add ( "Дипика");
l1.add ( "Сюзан");
System.out.println ();
System.out.println („Елементите на LinkedList са“);
System.out.print (“\ t” + l1);

Резултатът от горния синтаксис е както следва.

Елементите на ArrayList са

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

Свързани елементи от списъка

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

От горния код става ясно, че ArrayList и LinkedList поддържа реда на вмъкване.

Как се различават?

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

Комплектът и списъкът има свои собствени методи и нека разгледаме някои от тях тук.

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

Комплектът никога не поддържа реда на елементите, в които са вмъкнати в него, докато списъкът го поддържа. Има изключение от това правило за LinkedHashSet, тъй като поддържа реда на вмъкване, но другият набор като HashSet и TreeSet сортира елементите, преди да го съхранява. Същото е описано с примери по-долу.

Комплект Вход: Cat, кукла, Apple.

Съхранява се като: Apple, Cat, кукла.

Въвеждане на списък: Cat, кукла, Apple.

Съхранява се като: Cat, кукла, Apple.

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

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

Задайте вход: 10, 20, 20, 50.

Съхранява се като: 10, 20, 50.

Списък вход: 10, 20, 20, 50.

Съхранява се като: 10, 20, 20, 50.

  • Нулеви стойности:

Наборът може да има само една нулева стойност, докато списък може да има повече от една нулева стойност и не е ограничен до нито едно число.

Задайте вход: null, null, Човек, Куче, Самолет.

Съхранява се като: null, куче, човек, самолет.

Въвеждане на списък: null, null, Човек, Куче, Самолет.

Съхранено като: null, null, Човек, Куче, Самолет.

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

Методът Iterator работи добре с Set и List, докато метод ListIterator работи само със List. ListIterator може да се използва за преминаване напред и назад през списъка.

  • Наличието на Legacy Class:

Комплектът няма наследствен клас, докато интерфейсът List има наследство, наречено „вектор“. Вектор използва интерфейса List и следователно поддържа реда на вмъкване. Поради усилията за синхронизация, производителността на вектора в добавки, изтривания и актуализации е малко по-бавна.

  • внедрявания:

Малко от реализациите на Set са HashSet, LinkedHashSet и TreeSet. Малко от реализациите на List включват ArrayList и LinkedList.

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

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

Разлики в таблична форма:

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

Надявам се, ние включихме всяка възможна разлика между Set и List. Ако смятате, че сме пропуснали нещо, моля, уведомете ни.