Ključna razlika – lista u odnosu na set
Većina programskih jezika koristi nizove za skladištenje skupa podataka istog tipa. Jedan od glavnih nedostataka nizova je taj što, kada je veličina niza deklarirana, ne može se mijenjati. Ako programer želi pohraniti vrijednosti koje premašuju veličinu niza, onda bi trebao kreirati novi niz i kopirati postojeće elemente u novi niz. U ovim situacijama mogu se koristiti kolekcije. Moguće je dodavati elemente, brisati elemente i mnoge druge operacije uz podršku kolekcija. Postoje različite vrste kolekcija koje su dostupne u programskim jezicima kao što je Java. Lista i Set su interfejsi hijerarhije kolekcija. Osnovni interfejs za druga sučelja je Collection. Ključna razlika između Liste i Seta je u tome što List podržava pohranjivanje istog elementa više puta, dok Set ne podržava pohranjivanje istog elementa više puta. Stoga, set ne dozvoljava dupliranje.
Šta je lista?
Lista je interfejs koji proširuje interfejs kolekcije. Postoji nekoliko metoda u interfejsu kolekcije. Metoda add pomaže pri dodavanju elementa. 'Metoda uklanjanja' je uklanjanje elementa. Postoji 'addAll metoda' za dodavanje više elemenata dok 'removeAll metoda' za uklanjanje elemenata iz kolekcije. Metoda contains pomaže da se utvrdi da li je određeni objekat prisutan na Listi ili ne. 'containsAll' služi za pronalaženje da li je skup objekata prisutan u kolekciji. Metoda iteratora se koristi za petlju kroz stavke liste. Kako List proširuje Collection, sve metode Collection pripadaju Listi. Osim ovih metoda, Lista ima metode kao što su get i set. Programer može dobiti vrijednost na određenom indeksu koristeći metodu get. Programer može postaviti vrijednost na određenom indeksu koristeći set metodu. 'indexOf' se koristi za pronalaženje indeksa elementa.
U listi, operacije se mogu izvršiti prema poziciji. Programer može dati element podataka koji treba dodati u indeks. Tako će biti dodan specifičnom indeksu. Ako programer ne da indeks, element će biti dodan na kraj liste. Takođe održava umetnuti redosled. Ako se doda element 1, a zatim element2, tada će element1 biti prije elementa2.
Slika 01: Lista i set
ArrayList, LinkedList, Vector su neke klase koje implementiraju List. U ArrayList, pristup elementu je brz, ali je umetanje i brisanje niže. ArrayList nije siguran za niti. Pristup istom ArrayList-u iz više niti možda neće dati isti rezultat. U LinkedList-u, elementi su povezani i prema naprijed i prema naprijed. Umetanje i brisanje elemenata pomoću LinkedList-a je brže od ArrayList-a. LinkedList implementira i listu i red čekanja. Vector je sličan ArrayList, ali je bezbedan jer su sve metode sinkronizirane.
Šta je postavljeno?
Set je interfejs koji proširuje interfejs kolekcije. Kako Set interfejs proširuje Collection, sve metode Collection takođe pripadaju Setu. Skup ne podržava vrijednosti dupliciranja. Stoga programer ne može dvaput pohraniti isti element. Održava jedinstveni skup elemenata. Interfejs SortedSet proširuje Set interfejs. SortedSet održava elemente u sortiranom redoslijedu. Sučelje NavigableSet proširuje SortedSet. NavigableSet pruža metode navigacije kao što su niže, pod, strop itd.
HashSet, LinkedHashSet i TreeSet su neke klase koje implementiraju Set interfejs. HashSet implementira Set interfejs. Ne održava umetnuti redoslijed. Ako se vrijednosti umetnu kao a, x, b, mogu se pohraniti kao, x, a, b. LinkedSet održava umetnuti redoslijed. Ako su elementi umetnuti u redoslijedu a, x, b, redoslijed pohranjivanja će biti a, x, b. TreeSet implementira Set i NavigableSet. Ne održava redoslijed umetanja, već pohranjuje elemente u sortiranom redoslijedu. Ako je umetnuti red a, c, b, tada će elementi biti pohranjeni kao a, b, c. Svi HashSet, LinkedHashSet i TreeSet neće imati duple elemente.
Koje su sličnosti između liste i skupa?
- I List i Set interfejsi proširuju interfejs kolekcije.
- I List i Set podržavaju operacije kao što su dodavanje, uklanjanje elemenata.
Koja je razlika između liste i skupa?
Lista vs Set |
|
List Interface je podinterfejs kolekcije koji sadrži metode za izvođenje operacija kao što su umetanje, brisanje na osnovu indeksa. | Set Interface je podinterfejs kolekcije koji sadrži metode za izvođenje operacija kao što su umetanje, brisanje elemenata uz zadržavanje jedinstvenih elemenata. |
Predavanja | |
ArrayList, Vector i LinkedList su klase koje implementiraju interfejs liste. | HashSet, LinkedHashSet i TreeSet su klase koje implementiraju Set interfejs. |
Umnožavanje elemenata | |
Lista podržava dupliranje elemenata. | Set ne podržava umnožavanje elemenata. Elementi su jedinstveni. |
Sažetak – Lista vs Set
Kolekcije se koriste za dinamičko pohranjivanje elemenata. Programski jezici kao što je Java pružaju interfejs za kolekciju. Lista i Set su dva interfejsa koja pripadaju interfejsu kolekcije. Oba interfejsa proširuju Kolekciju. Ovaj članak govori o razlici između Liste i Seta. Ključna razlika između Liste i Seta je u tome što List podržava pohranjivanje istog elementa više puta, dok Set ne podržava pohranjivanje istog elementa više puta. Set uvijek održava jedinstvene elemente.