Tömblista vs vektor
A tömblista dinamikus tömbnek tekinthető, amelynek mérete nőhet. Emiatt a programozónak nem kell tudnia a tömblista méretét, amikor meghatározza azt. A vektor egy tömbnek is tekinthető, amelynek mérete növekedhet. A vektorok könnyen kioszthatók és felhasználhatók, ha a tároló szükséges mérete futásig nem ismert.
Mi az a tömblista?
A tömblista dinamikus tömbnek tekinthető, amelynek mérete nőhet. Ezért a tömblisták ideálisak olyan helyzetekben való használatra, amikor nem tudja a deklaráláskor szükséges elemek méretét. A Java-ban a tömblisták csak objektumokat tárolhatnak, közvetlenül nem tartalmazhatnak primitív típusokat (a primitív típusokat elhelyezheti egy objektumban, vagy használhatja a primitív típusok burkoló osztályait). A tömblisták általában a beillesztés, törlés és keresés végrehajtására szolgáló módszerekkel vannak ellátva. Az elemhez való hozzáférés időbeli összetettsége o (1), míg a beillesztés és törlés időbeli összetettsége o (n). A Java-ban a tömblisták áthaladhatnak foreach ciklusok, iterátorok vagy egyszerűen az indexek segítségével. A Java-ban tömblistákat vezettek be az 1.2-es verziótól, és ez a Java Collections Framework része.
Mi az a vektor?
A vektor egy tömb is, amely növekedhet. A vektorok könnyen kioszthatók és felhasználhatók, ha a tároló szükséges mérete futásig nem ismert. A vektorok is csak objektumokat, primitív típusokat sem képesek megtartani. A vektorok szinkronizáltak, ezért biztonságosan használhatók többszálas környezetben. A vektorok objektumok hozzáadására, törlésére és objektumok keresésére szolgáló módszerekkel vannak ellátva. A java tömblistájához hasonlóan a vektorok áthaladhatnak foreach hurkok, iterátorok vagy egyszerűen az indexek segítségével. Ami a Java-t illeti, a vektorok a Java első verziója óta szerepelnek benne.
Mi a különbség az Arraylist és a Vector között?
Annak ellenére, hogy mind a tömblisták, mind a vektorok nagyon hasonlítanak a dinamikus tömbökhöz, amelyek méretük növekedhet, van néhány fontos különbségük. A tömblisták és a vektorok közötti fő különbség az, hogy a vektorok szinkronizálva vannak, míg a tömblisták nincsenek szinkronizálva. Ezért a tömblisták használata többszálas környezetben nem lesz megfelelő, míg a vektorok biztonságosan használhatók többszálas környezetben (mivel szálbiztosak). De a vektorokban történő szinkronizálás csökkentené a teljesítményt. Ezért nem lenne jó ötlet vektorokat egyetlen menetes környezetben használni. Belsőleg mind a tömblisták, mind a vektorok tömböket használnak az objektumok megtartására. Amikor az aktuális tér nem elegendő, a vektorok megduplázzák a belső tömb méretét, míg a tömblisták 50% -kal növelik a belső tömb méretét. De mind a tömblisták, mind a vektorok használatakor megfelelő kezdeti kapacitás megadásával elkerülhető a belső tömb felesleges átméretezése. Abban a helyzetben, hogy az adatok növekedési sebessége ismert, a vektorok használata lenne megfelelőbb, mivel meghatározható lenne a vektorok inkrementális értéke.