Java SE 8 API dokumentációja

Utolsó módosítás: 2016.12.15.

Feladatok

  1. Hozzunk létre egy Book osztályt. Minden könyvnek van szerzője, címe, ára.

    1. Vegyük fel az adattagokat úgy, hogy legyenek nyilvánosak és csak olvashatóak.

    2. Adjunk konstruktort is az osztályhoz, mely inicializálja az adattagokat.

    3. Írjuk felül a toString() metódust, hogy valami hasonlót adjon: Book[<szerző>: <cím> (<ár>)].

  2. Hozzuk létre a BookByPrice osztályt, mellyel a könyveket rendezhetjük ár szerint. Az osztály implementálja a Comparator<Book> interfészt és annak compare() metódusát.

  3. Hozzuk létre a BookByTitle osztályt, mellyel a könyveket rendezhetjük cím szerint. Az osztály implementálja a Comparator<Book> interfészt és annak compare() metódusát.

  4. Hozzuk létre a BookDemo osztályt és abban egy main() metódust. A main() hozzon létre egy könyvekből álló listát, és rendezze ár szerint növekvő sorrendbe a könyveket a Collections.sort() vagy a List.sort() metódussal, és írja is ki a listát a képernyőre. Majd rendezze ár szerint csökkenő sorrendbe a könyveket a Collections.reverseOrder() metódussal.

    Rendezzük a könyveket cím szerint is.

    Módosítsuk a main()-t úgy, hogy névtelen függvényt használunk a fenti osztályok helyett.

  5. Módosítsuk a main()-t, hogy kilistázza az 5000 Ft-nál drágább könyvek címét. Használjuk a java.stream.Stream osztály filter() és map() metódusait. Stream-et listává a collect(Collectors.toList()) metódussal alakíthatunk.

  6. Keressük meg az adott című könyvet a listában. Használjuk a filter()-t együtt a findFirst() metódussal.

    A findFirst eredménye egy Optional<Book> objektum, mely egy doboz, amely lehet üres.

  7. Készítsünk programot Caesar-kód feltörésének megkönnyítésére! A cél hogy előállítsuk egy szöveg karakter-statisztikáját (azaz megszámoljuk, hogy a karakterek hányszor fordulnak elő a szövegben). Ez és a szöveg nyelvének jellemző statisztikája alapján már tudunk következtetni az eltolás mértékére, ezáltal visszafejthető az üzenet.

    Például:

    $ java CaesarBreaker "almafa alatt"
    {a=5, b=0, c=0, d=0, e=0, f=1, g=0, h=0, i=0, j=0, k=0, l=2, m=1, n=0, o=0,
    p=0, q=0, r=0, s=0, t=2, u=0, v=0, w=0, x=0, y=0, z=0}

    Fejtsük vissza az alábbi (angol nyelvű) üzenetet:

    krz riwhq l vdlg wr brx wkdw zkhq brx kdyh holplqdwhg wkh lpsrvvleoh zkdwhyhu uhpdlqv krzhyhu lpsuredeoh pxvw eh wkh wuxwk

    Angol nyelvű regények és újságok vizsgálata alapján a következő betűgyakoriság rajzolódott ki:

    Betű

    a

    b

    c

    d

    e

    f

    g

    h

    i

    j

    k

    l

    m

    n

    o

    Százalék

    8,2

    1,5

    2,8

    4,3

    12,7

    2,2

    2,0

    6,1

    7,0

    0,2

    0,8

    4,0

    2,4

    6,7

    7,5

    Betű

    p

    q

    r

    s

    t

    u

    v

    w

    x

    y

    z

    Százalék

    1,9

    0,1

    6,0

    6,3

    9,1

    2,8

    1,0

    2,4

    0,2

    2,0

    0,1