Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Taulukko käänteisenä

NiXoN1 [29.03.2008 19:58:58]

#

Olen aloitteleva ohjelmoija, niin kuin otsikosta jo näkyy. Olisin halunnut tietää Javassa miten voi saada helpoiten taulukon tiedot käänteiseen järjestykseen? Onko javassa mitään reverse-metodia?

Antti Laaksonen [29.03.2008 20:09:02]

#

Varmaan helpoin tapa on for-silmukan käyttö:

int[] taulu = {1, 2, 3, 4, 5};
int maara = taulu.length;
int vaihto;
for (int i = 0; i < maara / 2; i++) {
    // vaihdetaan kohtien taulu[i] ja taulu[maara - i - 1] sisältö
    vaihto = taulu[maara - i - 1];
    taulu[maara - i - 1] = taulu[i];
    taulu[i] = vaihto;
}
for (int i = 0; i < maara; i++) {
    System.out.println(taulu[i]);
}

Tässä on ajatuksena, että ensin vaihdetaan keskenään taulukon ensimmäinen ja viimeinen alkio, sitten toinen ja toiseksi viimeinen alkio, sitten kolmas ja kolmanneksi viimeinen alkio jne. aina taulukon keskikohtaan asti.

Kahden taulukon alkion vaihtoon käytetään yllä olevassa koodissa apumuuttujaa, koska Javassa ei tietääkseni ole suorempaa tapaa tähän.

kayttaja-2499 [29.03.2008 20:26:12]

#

Integer[] taulu = {8, 2, 5, 4};

List<Integer> list = Arrays.asList(taulu);
Collections.reverse(list);
taulu = list.toArray(taulu);

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta