Osatehtävä 1: Kokoelmat

Osatehtävä 1 tehdään hakemistossa Harjoitus3/Osa1. Osatehtävässä tehdään joukko pieniä Java-ohjelmia, jotka käsittelevät kokoelmia.

Huom! Tuloksena syntyvät ohjelmat ovat lyhyitä. Jos vastauksestasi näyttää tulevan kovin pitkä (yli 20 riviä koodia), kannattaa miettiä, miten saisit asian tehtyä helpommin.

Jos et vielä tunne kokoelmia, ota niistä selvää esimerkiksi Sunin tutoriaalista.

Osatehtävä 1.1: Duplikaattien poisto

Tee Java-ohjelma PoistaDuplikaatit, joka ottaa mielivaltaisen monta komentoriviparametria, muodostaa niistä joukon, jossa duplikaatit (eli saman arvon toistot) on poistettu ja tulostaa näin syntyneen joukon. Käytä apuna Javan kokoelmaluokkia. Toiminnan voit laittaa suoraan main metodiin.

Ohessa on esimerkki ohjelman mahdollisesta toiminnasta. Huomaa, ettei tulostusjärjestystä ole määrätty.

java PoistaDuplikaatit Jukka Anna Pertti Jaakko Antti Anna Unto Veijo Unto Jukka

[Veijo, Unto, Antti, Anna, Jaakko, Pertti, Jukka]
    

Osatehtävä 1.2: Järjestäminen duplikaatit poistaen

Tee Java-ohjelma Jarjesta1, joka ottaa mielivaltaisen monta komentoriviparametria, muodostaa niistä joukon ja tulostaa ne kasvavassa leksikograafisessa järjestyksessä duplikaatit poistettuna. Käytä apuna Javan kokoelmaluokkia. Toiminnan voit laittaa suoraan main metodiin.

Esimerkki:

java Jarjesta1 Jukka Anna Pertti Jaakko Antti Anna Unto Veijo Unto Jukka

[Anna, Antti, Jaakko, Jukka, Pertti, Unto, Veijo]
    

Osatehtävä 1.3: Järjestäminen duplikaatit säilyttäen

Tee Java-ohjelma Jarjesta2, joka ottaa mielivaltaisen monta komentoriviparametria ja tulostaa ne kasvavassa leksikograafisessa järjestyksessä duplikaatit säilyttäen. Käytä apuna Javan kokoelmaluokkia. Toiminnan voit laittaa suoraan main metodiin.

Esimerkki:

java Jarjesta2 234 aabnm Aa 001 xyz 001a aa Aa 234 123 aabnm

[001, 001a, 123, 234, 234, Aa, Aa, aa, aabnm, aabnm, xyz]
    

Osatehtävä 1.4: Järjestäminen duplikaatit säilyttäen

Tehtävä on muuten sama kuin 1.3, mutta tässä järjestyksen pitää olla laskeva. Ohjelman nimi on Jarjesta3.

Esimerkki:

java Jarjesta2 234 aabnm Aa 001 xyz 001a aa Aa 234 123 aabnm

[xyz, aabnm, aabnm, aa, Aa, Aa, 234, 234, 123, 001a, 001]
    

Osatehtävä 1.5: Suurimman ja pienimmän arvon etsiminen

Tee Java-ohjelma MinMax, joka ottaa mielivaltaisen monta komentoriviparametria, tallettaa ne List-tyyppiseen kokoelmaan ja tulostaa niistä pienimmän ja suurimman. Käytä iteraattoria kokoelman läpikäyntiin ja luokan String metodia compareTo vertailuun. Toiminnan voit laittaa suoraan main metodiin.

Huom! Tämä ohjelma on jo hieman pitempi kuin aiemmat (voi olla jopa yli 30 riviä)

Esimerkki:

java MinMax Jukka Anna Pertti Jaakko Antti Anna Unto Veijo Unto Jukka

Min = Anna, max = Veijo