Разлика между списъка с масиви и свързания списък
Преди да вникнем в действителните различия, нека се запознаем какви са в действителност?
Попаднахме на концепцията за 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 работи добре с Set и List, докато метод ListIterator работи само със List. ListIterator може да се използва за преминаване напред и назад през списъка.
Комплектът няма наследствен клас, докато интерфейсът List има наследство, наречено „вектор“. Вектор използва интерфейса List и следователно поддържа реда на вмъкване. Поради усилията за синхронизация, производителността на вектора в добавки, изтривания и актуализации е малко по-бавна.
Малко от реализациите на Set са HashSet, LinkedHashSet и TreeSet. Малко от реализациите на List включват ArrayList и LinkedList.
Използването на 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. Ако смятате, че сме пропуснали нещо, моля, уведомете ни.