Atšķirība starp sarakstu un kopu Java
Saturs
List and Set interfeiss paplašina kolekciju. Abas no tām uztur elementu vai priekšmetu kolekciju. Galvenā atšķirība, kas tos atšķir viens no otra, ir saraksts, ir pasūtītu elementu kolekcija, elementi tiek pievienoti vai noņemti, vai tiem ir pieejama ar indeksa mainīgā palīdzību. No otras puses, Set ir objektu kolekcija, kurā kolekcija neļauj tajā dublēt elementus. Izmantojot salīdzināšanas diagrammu, kas parādīta zemāk, izpētīsim vēl dažas atšķirības starp saraksta un kopas saskarnēm.
- Salīdzināšanas tabula
- Definīcija
- Galvenās atšķirības
- Secinājums
Salīdzināšanas tabula
Salīdzināšanas pamats | Saraksts | Komplekts |
---|---|---|
Pamata | Saraksts uztur sarakstā saglabāto elementu secību. | Komplekts īpaši neuztur ievietošanas secību, bet Linked HashSet uztur ievietošanas secību. |
Kopēšana | Sarakstā var būt dublikātu elementi. | Pievienot () metode atgriež nepatiesu, ja mēģināt ievietot dublētos elementus. |
Metodes | Papildus metodēm, kas definētas kolekcijā, saraksts definē dažas no savām metodēm. | Komplekts nenosaka nevienu papildu metodi. |
Īstenošana | Sarakstu īsteno ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. | Komplektu ievieš HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet. |
Saraksta definīcija
Saraksta interfeiss paplašina kolekcijas saskarni. Saraksts ir pasūtīta elementu vai objektu kolekcija. Atšķirībā no Set, sarakstā var būt dublējoši elementi. Papildus metodēm, kas noteiktas kolekciju sarakstā, tiek definētas arī dažas savas metodes, piemēram, uz indeksu balstīta get () un set () metode. No kolekcijas mantotās pievienošanas () un noņemšanas () metodes, kas pievieno vai noņem norādīto elementu no metodes argumentā norādītā indeksa. Saraksts ir sava veida masīvs, kura lielums palielinās, pievienojot sarakstam elementus.
Saraksts nenosaka nevienu metodi, kā darboties ar saraksta indeksiem. Tas definē sublist () metodi, kas atgriež sublist no noteikta diapazona sākotnējā saraksta. Izmaiņas, ko veicat apakšsarakstā, parādās arī sākotnējā sarakstā. Saraksta saskarni īsteno ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.
Komplekta definīcija
Iestatītā saskarne paplašina kolekcijas saskarni. Iestatītā saskarne ir kolekcija vai objektu grupa, kurā nav neviena objekta dublikāta. Tas nozīmē, ka divas atsauces nevar atsaukties uz vienu objektu vai viena atsauce nevar atsaukties uz diviem objektiem, vai arī nevar būt divas atsauces, kas attiecas uz nulli. Elementa secība vai secība nav svarīga Komplekts, taču nav arī tā, ka tas aizliedz pasūtīto komplektu.
Set interfeiss papildus metodei, kas definēta kolekcijā, nenosaka nevienu metodi. Tā vietā tas ierobežo kolekcijas pievienošanas () un addall () metodes, lai kolekcijai pievienotu jebkuru objekta dublikātu. Ja mēģināt pievienot jebkuru kolekcijas objekta dublikātu, izmantojot kolekcijas metodi add (), tā tiek parādīta nepatiesa. Pretējā gadījumā tā atgriežas taisnība. Komplekta interfeisu īsteno HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.
- Kolekcijas elementu / objekta secība tiek uzturēta sarakstā, turpretī Set neuztur elementu secību, bet ir izņēmums, ka LinkedHashSet uztur ievietošanas secību.
- Sarakstam var būt dublikātu elementi, jo tas identificē jebkuru elementu ar tā indeksu, bet komplekts neatļauj nevienu elementu dublēšanos, jo tam nav indeksa veida elementa, lai identificētu jebkuru kolekcijas objektu.
- Saraksts nosaka dažas metodes patstāvīgi, papildus metodēm, kas definētas kolekcijā. No otras puses, kopa nedefinē nevienu no savām metodēm, bet ierobežo kolekcijas metodes, lai pievienotu visus dublētos elementus.
- Sarakstu īsteno ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack saskarnes. No otras puses, komplektu īsteno interfeisi HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.
Secinājums:
Saraksta un kopas saskarnes izmantošana ir atkarīga no prasības. Ja ir svarīga objektu / elementu secība, jums jāizmanto saraksta saskarne. Ja kolekcijā nav nepieciešami dublējoši elementi, jums jāizmanto interfeiss Set