Különbség Az Arraylist és A Vector Között

Különbség Az Arraylist és A Vector Között
Különbség Az Arraylist és A Vector Között

Videó: Különbség Az Arraylist és A Vector Között

Videó: Különbség Az Arraylist és A Vector Között
Videó: 14.4 Vector vs ArrayList Java-ban 2024, December
Anonim

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.

Ajánlott: