Galvenā atšķirība - saraksts pret komplektu
Lielākā daļa programmēšanas valodu izmanto masīvus, lai saglabātu tāda paša veida datu kopu. Viens no galvenajiem masīvu trūkumiem ir tas, ka pēc masīva lieluma deklarēšanas to nevar mainīt. Ja programmētājs vēlas saglabāt vērtības, kas pārsniedz masīva lielumu, viņam jāizveido jauns masīvs un esošie elementi jākopē jaunajā masīvā. Šādās situācijās var izmantot kolekcijas. Ar kolekciju atbalstu ir iespējams pievienot elementus, dzēst elementus un daudzas citas darbības. Programmēšanas valodās, piemēram, Java, ir pieejamas dažāda veida kolekcijas. Saraksts un Kopa ir kolekciju hierarhijas saskarnes. Citu saskarņu bāzes interfeiss ir kolekcija. Galvenā atšķirība starp sarakstu un kopu ir tāda, ka saraksts atbalsta viena un tā paša elementa saglabāšanu vairākas reizes, savukārt komplekts neatbalsta viena un tā paša elementa saglabāšanu vairākas reizes. Tāpēc kopa nepieļauj dublēšanos.
Kas ir saraksts?
Saraksts ir interfeiss, kas paplašina kolekcijas saskarni. Kolekcijas saskarnē ir vairākas metodes. Pievienošanas metode palīdz pievienot elementu. “Noņemšanas metode” ir elementa noņemšana. Ir “addAll metode”, lai pievienotu vairākus elementus, savukārt “removeAll metode”, lai noņemtu elementus no kolekcijas. Satura metode palīdz noskaidrot, vai konkrēts objekts atrodas sarakstā vai nav. “ContainsAll” ir paredzēts, lai noskaidrotu, vai kolekcijā ir objektu kopa. Iteratora metode tiek izmantota, lai pārvietotos pa saraksta vienumiem. Tā kā saraksts paplašina kolekciju, visas savākšanas metodes pieder sarakstam. Izņemot šīs metodes, sarakstā ir tādas metodes kā iegūt un iestatīt. Programmētājs var iegūt vērtību noteiktā indeksā, izmantojot iegūšanas metodi. Programmētājs var iestatīt vērtību noteiktam indeksam, izmantojot iestatīto metodi. “indexOf” tiek izmantots, lai atrastu elementa indeksu.
Sarakstā darbības var veikt atbilstoši pozīcijai. Programmētājs var nodrošināt datu elementu, kas jāpievieno indeksam. Tātad tas tiks pievienots konkrētajam indeksam. Ja programmētājs nedod indeksu, elements tiks pievienots saraksta beigās. Tas arī uztur ievietoto kārtību. Ja tiek pievienots elements 1 un pēc tam tiek pievienots elements2, tad elements1 būs pirms elementa2.
Attēls 01: saraksts un iestatījums
ArrayList, LinkedList, Vector ir dažas klases, kas ievieš sarakstu. ArrayList piekļūšana elementam ir ātra, bet ievietošana un dzēšana ir mazāka. ArrayList nav pavedienu drošs. Piekļuve vienam un tam pašam ArrayList no vairākiem pavedieniem var nedot tādu pašu rezultātu. LinkedList elementi ir saistīti gan ar atpakaļejošu, gan uz priekšu. Elementu ievietošana un dzēšana, izmantojot LinkedList, ir ātrāka nekā ArrayList. LinkedList ievieš gan sarakstu, gan rindu. Vektors ir līdzīgs ArrayList, taču tas ir drošs pret protektoru, jo visas metodes ir sinhronizētas.
Kas ir iestatīts?
Set ir interfeiss, kas paplašina kolekcijas saskarni. Tā kā Set interfeiss paplašina kolekciju, visas kolekcijas metodes arī pieder komplektam. Kopa neatbalsta vērtību dublēšanos. Tāpēc programmētājs nevar saglabāt vienu un to pašu elementu divas reizes. Tas uztur unikālu elementu kopumu. SortedSet saskarne paplašina Set interfeisu. SortedSet uztur elementus sakārtotā secībā. NavigableSet saskarne paplašina SortedSet. NavigableSet nodrošina navigācijas metodes, piemēram, zemāku, grīdu, griestus utt.
HashSet, LinkedHashSet un TreeSet ir dažas klases, kas ievieš Set saskarni. HashSet ievieš Set interfeisu. Tas neuztur ievietoto kārtību. Ja vērtības tiek ievietotas kā a, x, b, tās var saglabāt kā, x, a, b. LinkedSet saglabā ievietoto secību. Ja elementi tiek ievietoti a, x, b secībā, saglabāšanas secība būs a, x, b. TreeSet ievieš Set un NavigableSet. Tas neuztur ievietošanas secību, bet saglabā elementus sakārtotā secībā. Ja ievietotā secība ir a, c, b, tad elementi tiks saglabāti kā a, b, c. Visiem HashSet, LinkedHashSet un TreeSet nebūs elementu dublikātu.
Kādas ir līdzības starp sarakstu un kopu?
- Gan saraksta, gan iestatīšanas saskarnes paplašina kolekcijas saskarni.
- Gan saraksta, gan iestatīšanas atbalsta darbības, piemēram, elementu pievienošana, noņemšana.
Kāda ir atšķirība starp sarakstu un komplektu?
Saraksts pret komplektu |
|
Saraksta interfeiss ir kolekcijas apakšinterfeiss, kas satur metodes tādu darbību veikšanai kā ievietošana, dzēšana, pamatojoties uz indeksu. | Iestatīt interfeisu ir kolekcijas apakšinterfeiss, kurā ir ietvertas metodes tādu darbību veikšanai kā elementu ievietošana, dzēšana, vienlaikus saglabājot unikālos elementus. |
Nodarbības | |
ArrayList, Vector un LinkedList ir klases, kas ievieš List interfeisu. | HashSet, LinkedHashSet un TreeSet ir klases, kas ievieš Set saskarni. |
Elementu dublēšanās | |
Saraksts atbalsta elementu dublēšanu. | Set neatbalsta elementu dublēšanos. Elementi ir unikāli. |
Kopsavilkums - saraksts pret komplektu
Kolekcijas tiek izmantotas, lai dinamiski saglabātu elementus. Programmēšanas valodas, piemēram, Java, nodrošina kolekcijas saskarni. Saraksts un Set ir divas saskarnes, kas pieder kolekcijas saskarnei. Abas saskarnes paplašina kolekciju. Šajā rakstā tika apspriesta atšķirība starp sarakstu un kopu. Galvenā atšķirība starp sarakstu un kopu ir tāda, ka saraksts atbalsta viena un tā paša elementa saglabāšanu vairākas reizes, savukārt komplekts neatbalsta viena un tā paša elementa glabāšanu vairākas reizes. Komplektā vienmēr tiek saglabāti unikāli elementi.