Koodi tehtävään, seuraava blogikirjoitus

19.04.2026

import java.util.*;

public class ArvontaSeuraaja {

public static void main(String[] args) {

// Simuloitu aineisto aiemmista arvonnoista (esim. haravan rivejä)

List<List<Integer>> historiallisetArvonnat = Arrays.asList(

Arrays.asList(1, 5, 12, 23, 34),

Arrays.asList(5, 12, 19, 23, 40),

Arrays.asList(1, 5, 8, 12, 23),

Arrays.asList(2, 5, 12, 25, 30)

);

// Analysoidaan, mitkä numerot seuraavat numeroa 5

int seurattavaNumero = 5;

Map<Integer, Integer> seuraajat = analysoiSeuraajat(historiallisetArvonnat, seurattavaNumero);

// Tulostetaan tulokset

System.out.println("Numeroa " + seurattavaNumero + " seuranneet numerot ja niiden yleisyys:");

seuraajat.forEach((numero, kerrat) ->

System.out.println("Numero " + numero + ": " + kerrat + " kertaa"));

}

/**

* Laskee kuinka monta kertaa kukin numero esiintyy kohdenumeron jälkeen samalla rivillä.

*/

public static Map<Integer, Integer> analysoiSeuraajat(List<List<Integer>> data, int kohde) {

Map<Integer, Integer> esiintymat = new HashMap<>();

for (List<Integer> rivi : data) {

// Lajitellaan rivi varmuuden vuoksi, jos kyseessä on nouseva järjestelmä

Collections.sort(rivi);

if (rivi.contains(kohde)) {

int indeksi = rivi.indexOf(kohde);

// Käydään läpi kaikki numerot, jotka tulevat kohdenumeron jälkeen rivillä

for (int i = indeksi + 1; i < rivi.size(); i++) {

int seuraaja = rivi.get(i);

esiintymat.put(seuraaja, esiintymat.getOrDefault(seuraaja, 0) + 1);

}

}

}

return esiintymat;

}

}

Share