Utolsó módosítás: 2015.11.21.
Definiáljuk a generikus Pair
osztályt! Az osztály objektumai rendezett párokat ábrázolnak. A két komponens típusa tetszőleges lehet, és paraméterként adjuk meg.
Legyen egy konstruktor, mely paraméterül várja a komponenseket, emellett egy getFirst()
és egy getSecond()
metódus is, melyek az első és második komponenst adják vissza.
Például:
Pair<Integer,Character> p = new Pair<>(0, 'a');
int n = p.getFirst();
char c = p.getSecond();
char d = p.getFirst(); // fordítási hiba
Pair<Integer,Character> q = new Pair<>('b', 1); // fordítási hiba
Haladóknak: definiáljuk felül az java.lang.Object
equals()
metódusát! Figyeljünk, hogy az equals()
paramétere Object
típusú.
Valósítsuk meg a GenericMax
osztályban a generikus max()
metódust, mely tetszőleges elemek gyűjteményét (java.util.Collection
típus) várja paraméterül, és megkeresi a legnagyobbat közülük. Az egyetlen megkötés az eltárolt elemekre, hogy implementálják a Comparable
interfészt.
Definiáljunk egy saját ellenőrzött util.AlreadyContainsException
kivételosztályt! Ilyet akkor váltunk ki, ha egy gyűjteménybe olyan elemet akarunk beszúrni, mely már megtalálható benne.
Legyen egy rejtett adattagja (például what
), mely eltárolja a beszúrandó elem szöveges ábrázolását. Írjunk hozzá ,,getter’’ metódust is! Adjunk meg érthető hibaüzenetet is az Exception
szülőosztály konstruktorának meghívásával!
Valósítsuk meg a generikus util.SortedList
osztályt, melynek objektumai rendezett listát ábrázolnak! Írjuk elő, hogy csak java.util.Comparable
-t megvalósító típussal lehessen paraméterezni az osztályt!
Írjunk hozzá beszúró add()
műveletet is! Ez paraméterül kapott elemet nagyság szerinti helyére szúrja be. A művelet után a lista rendezett marad.
Írjunk hozzá beszúró uniqueAdd()
műveletet is! Ez AlreadyContainsException
kivételt vált ki, ha a beszúrandó elem már megtalálható a listában.
Írjunk hozzá törlő remove()
műveletet is! Ez a paraméterül kapott elem első előfordulását távolítja el a listából. Adjunk vissza igaz értéket, ha az adott elem benne volt a listában. Kihasználva a rendezettséget csak addig kell keresni a listában, amíg meg nem találjuk az első olyan elemet, amely már nagyobb, mint a keresett.
Írjunk egy rövid main()
metódust a SortedListDemo
osztályban! Hozzunk létre egy SortedList
objektumot, és szúrjunk be néhány elemet a uniqueAdd()
metódussal! Kezeljük le az esetlegesen keletkező kivételt úgy, hogy kiírjuk a szabványos hibakimenetre kivételben tárolt információt (például message
)!