Jelenlegi hely

21. Gyűjtemények

A gyűjtemények (vagy más néven tárolók, konténerek, kollekciók) olyan típuskonstrukciós eszközök, melynek célja egy vagy több típusba tartozó objektumok memóriában történő összefoglaló jellegű tárolása, manipulálása és lekérdezése.

A gyűjtemény keretrendszer

A gyűjtemény keretrendszer (Java Collections Framework, JCF) egy egységes architektúra, ami a gyűjtemények használatára és manipulálására szolgál. A gyűjtemény keretrendszer tartalmazza:

  • interfészek: absztrakt adattípusok reprezentációja. Az interfészek lehetővé teszik a gyűjtemények szolgáltatásainak (publikus interfészének) megvalósítás-független ábrázolását.
  • implementációk: a gyűjtemény interfészek konkrét implementációi. Főként ezek az újrafelhasználható adatstruktúrák.
  • algoritusok: azok a metódusok, amelyek hasznos műveleteket valósítanak meg, mint például a keresés vagy a rendezés egy objektumon, ami implementálható különböző gyűjtemény interfészeken. Ezeket az algoritmusokat többalakúnak hívjuk: azonos metódus használható különböző implementációk esetén is. Elsősorban az algoritmusok újrafelhasználható funkcionalitása.

A JCF-hez hasonló legismertebb megoldás a C++ nyelvű szabványos minta-könyvtár (Standard Template Library, STL).

A Gyűjtemény keretrendszer használatának előnyei

A Java Gyűjtemény keretrendszer az alábbi előnyökkel rendelkezik:

Csökkenti a fejlesztési időt

Mivel kész adatstruktúrák és algoritmusok állnak rendelkezésünkre, a Gyűjtemény keretrendszer lehetővé teszi, hogy a program fontosabb részével foglalkozzunk, ahelyett, hogy alacsonyszintű programozással kelljen foglalkoznunk.

Növeli a programozás sebességét és minőségét

A JCF gyors és jó minőségű algoritmus-, és adatstruktúra-implementációkkal rendelkezik. A különböző implementációk minden egyes interfésznél felcserélhetők, így a programokat könnyen össze lehet hangolni a gyűjtemény implementációkkal. Több időt tud arra fordítani, hogy növelje a programok minőségét és sebességét, mivel megszabadítja attól a rabszolgamunkától, hogy saját adatstruktúrákat kelljen írnia.

Megengedi az együttműködést a nem kapcsolódó API-k között

Ha két különböző függvénykönyvtár nem illeszthető egymáshoz közvetlenül, akkor lehet akár a keretrendszer a közös nevező az illesztés megteremtése érdekében.

Csökkenti az új API-k használatának és tanulásának nehézségét

Régen minden egyes API-nál egy kis segéd API-t készítettek arra, hogy manipulálja az egyes gyűjteményeket. Kevés összefüggés volt az erre a célra készült gyűjtemények segéd API-jai között, így külön-külön meg kell tanulni azokat, így könnyen hibát ejthetünk ezek használatával. Az általános gyűjtemény interfészek megjelenésétől ez a probléma már a múlté.

Megkönnyíti az új API-k tervezését

A tervezőknek és a kivitelezőknek nem kell újra kidolgozni az API-t, valahányszor készítenek egy gyűjteményekre alapozott API-t, hanem az általános gyűjtemény interfészt használhatják.

Elősegíti a szoftver újrafelhasználhatóságát

Az gyűjtemény interfészekkel összhangba hozott új adatstruktúrák természetesen újra felhasználhatók. Hasonlóan, új algoritmus fejlesztésekor könnyen hozzákapcsolható lesz az összes létező eddigi megvalósításhoz.