Junior
Mi a különbség a List és a Set között a Dartban?
sobes.tech MI
Válasz az MI-től
Főbb különbségek:
- Tartalom: A List duplikátumokat tartalmazhat, a Set csak egyedi elemeket tárol.
- Sorrend: A List megőrzi az elemek hozzáadásának sorrendjét, a Set nem garantál sorrendet.
- Teljesítmény:
- Hozzáadás/törlés: Átlagosan a Set-ben az elem hozzáadása/törlése gyorsabb (O(1)), a hashelés miatt. A List esetében ezek a műveletek lassabbak lehetnek (akár O(n)), a pozíciótól függően.
- Keresés: A Set-ben a keresés érték szerint gyorsabb (O(1) átlagosan), szintén a hashelés miatt. A List-ben az érték szerinti keresés lineáris (O(n)). A hozzáférés index szerint gyors (O(1)).
Példák:
// List - duplikátumokat engedélyez, megőrzi a sorrendet
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Kimenet: [1, 2, 2, 3, 1]
print(numbersList[0]); // Kimenet: 1 (index szerinti hozzáférés)
// Set - csak egyedi elemek, a sorrend nem garantált
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Kimenet: {1, 2, 3} (a sorrend változhat)
// print(numbersSet[0]); // Hiba: A Set nem támogatja az index szerinti hozzáférést
print(numbersSet.contains(2)); // Kimenet: true (gyors keresés)