Legjobb válasz
Gondoljon a listák, a térképek és a halmazok közötti különbségekre.
A Térkép egy olyan struktúra, amely lehetővé teszi a dolgok megkeresését egy kulcs segítségével. Amikor kereséseket tervez, rájön, hogy sok kulcs-összehasonlításra van szükség, és a kereséseknek gyorsaknak kell lenniük. Egy fa felgyorsítja a kulcs-összehasonlítási folyamatot a kulcsok ágakba szervezésével; ez csökkenti a kulcs-összehasonlítások számát. el kell készíteni.
Egy készletben nincsenek ismétlődő elemek. Tehát minden egyes elem hozzáadásakor össze kell hasonlítania a meglévő elemekkel, hogy lássa, nem duplikál-e. Most ugyanarra a problémára tér vissza, mint a Térkép, tehát egy fa segítségével rendezheti elemeit az összehasonlítások csökkentése érdekében.
A listának csak sorrendje van, így a lista könnyen megtervezhető úgy, hogy ne ” A következő (vagy esetleg előző) elemhez a Lista sorrendben összehasonlításra nincs szükség.
Tehát bár egy fa segíthet jobb térkép vagy halmaz elkészítésében, ez nem igazán segíthet jobb lista elkészítésében. .
Ha rendezett listáról beszél, ahol az elemek rendezési sorrendben kerülnek be a listába, akkor most visszatér az összehasonlításokhoz rendezéshez, így a fa segíthet a rendezett lista elkészítésében.
Válasz
Nos, a lista rendezett gyűjtemény – ami azt jelenti, hogy képesnek kell lennie arra, hogy véletlenszerűen elérje az i-ik elemet. Ha a gyűjtemény belül keveri az elemeket, akkor a beszúrási sorrend nem egyezik meg a belső adatstruktúra elemeinek sorrendjével. Így már nem támaszkodhat indexalapú hozzáférésre. Ezért a Sun nem adott meg SortedList vagy TreeList osztályt. Ugyanezt elérheti a Collections.sort (..) használatával.
Az Apache commons-gyűjtemények biztosítanak egy TreeList osztályt ( TreeList (Commons Collections 3.2.1 API) ), de ez nem rendezett lista, és azért hívják, mert egy fa adatstruktúrát használ az elemek belső tárolásához