Lielākā daļa programmēšanas valodu izmanto masīvus, lai saglabātu viena veida datu kopu. Viens būtisks masīvu trūkums ir tāds, ka pēc masīva lieluma paziņošanas to nevar modificēt. Ja programmētājs vēlas uzglabāt vērtības, kas pārsniedz masīva lielumu, viņam jāizveido jauns masīvs un esošie elementi jākopē uz jauno masīvu. Šajās situācijās var izmantot kolekcijas. Ar kolekciju atbalstu ir iespējams pievienot elementus, izdzēst elementus un daudzas citas darbības. Programmēšanas valodās, piemēram, Java, ir pieejami dažādi kolekciju veidi. Saraksts un kopa ir kolekciju hierarhijas saskarnes. Citu saskarņu bāzes saskarne ir Kolekcija. galvenā atšķirība starp Sarakstu un Set ir tas Saraksts atbalsta viena un tā paša elementa glabāšanu vairākas reizes, savukārt komplekts neatbalsta viena un tā paša elementa glabāšanu vairākas reizes. Tāpēc komplekts neatļauj kopēšanu.
1. Pārskats un galvenās atšķirības
2. Kas ir saraksts
3. Kas ir noteikts
4. Līdzības starp sarakstu un kopu
5. Salīdzinājums blakus - saraksts vs komplekts tabulas formā
6. Kopsavilkums
Saraksts ir interfeiss, kas paplašina kolekcijas saskarni. Kolekcijas saskarnē ir vairākas metodes. Pievienot metode palīdz pievienot elementu. 'Noņemšanas metode' ir elementa noņemšana. Ir “addAll metode”, lai pievienotu vairākus elementus, bet “removeAll metode”, lai noņemtu elementus no kolekcijas. Satur metode palīdz noskaidrot, vai sarakstā ir noteikts objekts. “SaturAll” ir paredzēts, lai noskaidrotu, vai kolekcijā ir objektu kopums. Ierozatora metode tiek izmantota, lai cilpu cauri saraksta vienumiem. Tā kā saraksts paplašina kolekciju, visas kolekcijas metodes pieder sarakstam. Izņemot šīs metodes, sarakstā ir tādas metodes kā get and set. Programmētājs var iegūt vērtību noteiktā indeksā, izmantojot iegūšanas metodi. Programmētājs var iestatīt vērtību noteiktā indeksā, izmantojot iestatīto metodi. 'IndexOf' tiek izmantots, lai atrastu elementa indeksu.
Sarakstā operācijas 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 1. elements un pēc tam 2. elements, tad elements1 būs pirms elementa2.
01. attēls: saraksts un kopa
ArrayList, LinkedList, Vector ir dažas klases, kurās tiek ieviests saraksts. ArrayList elementā var ātri piekļūt, bet ievietošana un izdzēšana ir zemāka. ArrayList nav drošs uz pavedieniem. Piekļūstot tam pašam ArrayList no vairākiem pavedieniem, iespējams, nedos 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. Vector ir līdzīgs ArrayList, taču tas ir drošs par protektoru, jo visas metodes ir sinhronizētas.
Komplekts ir interfeiss, kas paplašina kolekcijas saskarni. Tā kā Set interfeiss paplašina kolekciju, visas kolekcijas metodes pieder arī Set. Komplekts neatbalsta kopēšanas vērtības. Tāpēc programmētājs nevar divreiz uzglabāt vienu un to pašu elementu. Tas uztur unikālu elementu kopu. SortedSet interfeiss paplašina Set interfeisu. SortedSet uztur elementus sakārtotā secībā. NavigableSet saskarne paplašina SortedSet. NavigableSet nodrošina tādas navigācijas metodes kā apakšējā, grīda, griesti utt.
HashSet, LinkedHashSet un TreeSet ir dažas klases, kas ievieš Set interfeisu. HashSet mašīnu komplekts interfeiss. 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 uztur ievietoto kārtību. Ja elementi tiek ievietoti secībā a, x, b, glabāšanas secība būs a, x, b. TreeSet īsteno Set un NavigableSet. Tas neuztur ievietošanas kārtī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. Visām HashSet, LinkedHashSet un TreeSet nebūs neviena dublējoša elementa.
Saraksts vs komplekts | |
Saraksta interfeiss ir kolekcijas apakš interfeiss, kas satur metodes tādu darbību veikšanai kā ievietošana, dzēšana, pamatojoties uz indeksu. | Set Interface ir kolekcijas apakš interfeiss, kas satur metodes tādu darbību veikšanai kā elementu ievietošana, dzēšana, saglabājot unikālos elementus. |
Klases | |
ArrayList, Vector un LinkedList ir klases, kas ievieš saraksta saskarni. | HashSet, LinkedHashSet un TreeSet ir klases, kas ievieš Set interfeisu. |
Elementa kopēšana | |
Saraksts atbalsta elementu dublēšanos. | Komplekts neatbalsta elementu dublēšanos. Elementi ir unikāli. |
Kolekcijas tiek izmantotas elementu dinamiskai glabāšanai. Programmēšanas valodas, piemēram, Java, nodrošina kolekcijas saskarni. Saraksts un kopa ir divas saskarnes, kas pieder kolekcijas saskarnei. Abas saskarnes paplašina kolekciju. Šajā rakstā tika apskatīta 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 glabāšanu vairākas reizes, savukārt komplekts neatbalsta viena un tā paša elementa glabāšanu vairākas reizes. Komplekts vienmēr uztur unikālus elementus.
1.Punkts, konsultācijas. “Java kolekcijas.”, Konsultāciju punkts, 2018. gada 8. janvāris. Pieejams šeit