Večina programskih jezikov uporablja matrike za shranjevanje nabora podatkov iste vrste. Glavna pomanjkljivost nizov je, da ko je razglašena velikost matrike, je ni mogoče spremeniti. Če želi programer shraniti vrednosti, ki presegajo velikost matrike, potem mora ustvariti novo matriko in kopirati obstoječe elemente v novo matriko. V teh situacijah je mogoče uporabiti zbirke. Možno je dodati elemente, izbrisati elemente in številne druge operacije s podporo zbirk. V programskih jezikih, kot je Java, so na voljo različne vrste zbirk. Seznam in Set sta vmesnika hierarhije zbirk. Osnovni vmesnik za druge vmesnike je Collection. The ključna razlika med List in Set je to Seznam podpira shranjevanje istega elementa večkrat, medtem ko Set ne podpira večkratnega hranjenja istega elementa. Nabor torej ne dovoljuje podvajanja.
1. Pregled in ključne razlike
2. Kaj je seznam
3. Kaj je nastavljeno
4. Podobnosti med seznamom in nizom
5. Primerjava drug ob drugem - seznam vs nastavljen v tabeli
6. Povzetek
Seznam je vmesnik, ki razširja vmesnik Collection. V vmesniku Collection obstaja več metod. Način dodajanja pomaga dodati element. 'Metoda odstranjevanja' je odstranitev elementa. Obstaja 'addAll metoda' za dodajanje več elementov, medtem ko 'methodAll method' za odstranitev elementov iz zbirke. Metoda vsebuje pomaga ugotoviti, ali je določen predmet na seznamu ali ne. Zdaj vsebuje "vsebuje vse", ali je v zbirki prisoten nabor predmetov. Metoda iteratorja se uporablja za preiskovanje elementov seznama. Ker List razširja zbirko, vsi načini zbiranja pripadajo seznamu. Razen teh metod na seznamu obstajajo tudi metode get and set. Programer lahko s pomočjo metode get pridobi vrednost v določenem indeksu. Programer lahko z nastavljeno metodo nastavi vrednost v določenem indeksu. 'IndexOf' se uporablja za iskanje indeksa elementa.
Na seznamu se lahko operacije izvajajo glede na položaj. Programer lahko zagotovi podatkovni element, ki ga je treba dodati v indeks. Torej bo dodan specifičnemu indeksu. Če programer ne da indeksa, bo element dodan na konec seznama. Prav tako vzdržuje vstavljeni vrstni red. Če dodamo element 1 in dodamo element 2, potem bo element1 pred elementom2.
Slika 01: Seznam in nastavitev
ArrayList, LinkedList, Vector so nekateri razredi, ki izvajajo List. V ArrayListu je dostop do elementa hiter, vendar je vstavljanje in brisanje manjše. ArrayList ni varen za navoje. Dostop do istega ArrayList iz več niti morda ne bo dal enakega rezultata. V LinkedListu so elementi povezani tako nazaj kot naprej. Vstavljanje in brisanje elementov z LinkedListom je hitrejše od ArrayList. LinkedList izvaja List in čakalno vrsto obeh. Vector je podoben ArrayListu, vendar je varno pred tekalno zaščito, ker so vse metode sinhronizirane.
Set je vmesnik, ki razširja vmesnik Collection. Ker vmesnik Set razširja zbirko, tudi vsi načini zbiranja pripadajo Setu. Set ne podpira vrednosti podvajanja. Zato programer ne more dvakrat shraniti istega elementa. Ohranja edinstven nabor elementov. Vmesnik SortedSet razširja Set vmesnik. SortedSet vzdržuje elemente v razvrščenem vrstnem redu. Vmesnik NavigableSet razširja SortedSet. NavigableSet ponuja načine navigacije, kot so spodnja, tla, strop itd.
HashSet, LinkedHashSet in TreeSet so nekateri razredi, ki implementirajo vmesnik Set. The HashSet izvaja Vmesnik za nastavitev. Vstavljenega vrstnega reda ne vzdržuje. Če so vrednosti vstavljene kot a, x, b, se lahko shranijo kot, x, a, b. The LinkedSet vzdržuje vstavljeni vrstni red. Če so elementi vstavljeni v vrstnem redu a, x, b, bo vrstni red shranjevanja a, x, b. The TreeSet izvaja Set in NavigableSet. Ne vzdržuje vrstnega reda vstavljanja, ampak elemente shrani v razvrščen vrstni red. Če je vstavljeni vrstni red a, c, b, bodo elementi shranjeni kot a, b, c. Vsi HashSet, LinkedHashSet in TreeSet ne bodo imeli dvojnikov.
Seznam proti nizu | |
Seznam vmesnikov je vmesnik zbirke, ki vsebuje metode za izvajanje operacij, kot so vstavljanje, brisanje na podlagi indeksa. | Set Interface je pod vmesnik zbirke, ki vsebuje metode za izvajanje operacij, kot so vstavljanje, brisanje elementov ob ohranjanju edinstvenih elementov. |
Razredi | |
ArrayList, Vector in LinkedList so razredi, ki uporabljajo vmesnik List. | HashSet, LinkedHashSet in TreeSet so razredi, ki izvajajo vmesnik Set. |
Podvajanje elementov | |
Seznam podpira podvajanje elementov. | Set ne podpira podvajanja elementov. Elementi so edinstveni. |
Zbirke se uporabljajo za dinamično shranjevanje elementov. Programski jeziki, kot je Java, nudijo vmesnik za zbiranje. Seznam in Set sta dva vmesnika, ki pripadata zbirki vmesnikov. Oba vmesnika razširita zbirko. Ta članek obravnava razliko med Seznam in Set. Ključna razlika med Listom in Setom je, da List podpira shranjevanje istega elementa večkrat, medtem ko Set ne podpira večkratnega hranjenja istega elementa. Set vedno ohranja edinstvene elemente.
1.Point, Vadnice. „Zbirke Java.“, Vadnice, 8. januarja 2018. Na voljo tukaj