import java.util.Random; import java.util.Scanner; import java.io.PrintWriter; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; class Main { static HashMap personer = new HashMap<>(); public static void main(String[] args) { try { lesFraFil(new File("personer.in")); } catch (FileNotFoundException e) { System.out.println("Filen finnes ikke!"); System.exit(-1); } // Person p = personer.get("Miriam"); Person p = hentTilfeldigPerson(); p.spor(); } public static void lesFraFil(File fil) throws FileNotFoundException { Scanner sc = new Scanner(fil); // Oppretter alle Person-objektene String linje = sc.nextLine(); while (!linje.startsWith("#")) { String[] info = linje.split(" "); String navn = info[0]; Kjonn kjonn = info[1].equals("F") ? Kjonn.FEMALE : Kjonn.MALE; int alder = Integer.parseInt(info[2]); boolean erMorder = info[3].equals("Y"); personer.put(navn, Person.opprettPerson(navn, alder, kjonn, erMorder)); linje = sc.nextLine(); } // Setter bekjentskapene while (sc.hasNextLine()) { linje = sc.nextLine(); String[] persOgFolk = linje.split(": "); String[] bekjentArray = persOgFolk[1].split(" "); ArrayList bekjentListe = new ArrayList<>(); for (String navn : bekjentArray) { Person bekjent = personer.get(navn); bekjentListe.add(bekjent); } personer.get(persOgFolk[0]).settBekjente(bekjentListe); } } // Denne metoden returnerer en tlfeldig person fra personer-hashmapen // Brukes ved innlesning av den store navnelisten. // OBS! Kan ikke brukes f?r hashmapet er har minst et verdisett. public static Person hentTilfeldigPerson() { Random r = new Random(); List liste = new ArrayList(personer.values()); return liste.get(r.nextInt(personer.size())); } }