import java.io.*; import java.util.Scanner; class Frekvens { class Node { Node neste = null; String navn; Node(String n) { navn = n; } } Node forste = null; String flest; int flestAntall; Frekvens(String[] initData) { Node siste = null; forste = null; for (int i = 0; i < initData.length; i++) { if (forste == null) { forste = siste = new Node(initData[i]); } else { siste.neste = siste = new Node(initData[i]); } } } String hentFlest() { return flest; } int hentAntall() { return flestAntall; } void finnFlest() { flest = null; flestAntall = 0; String denne = ""; int denneAntall = 0; Node p = forste; while (p != null) { if (p.navn.equals(denne)) { denneAntall++; } else { denne = p.navn; denneAntall = 1; } if (denneAntall > flestAntall) { flest = denne; flestAntall = denneAntall; } p = p.neste; } } } class BrukFrekvens { public static void main(String[] arg) { String[] lager = new String[1000]; int antILager = 0; if (arg.length != 1) { System.out.println("Usage: java BrukFrekvens datafil"); System.exit(1); } try { Scanner s = new Scanner(new File(arg[0])); while (s.hasNextLine()) { lager[antILager++] = s.nextLine(); } } catch (FileNotFoundException e) { System.out.println("Kan ikke lese " + arg[0] + "!"); System.exit(2); } String[] lager2 = new String[antILager]; for (int i = 0; i < antILager; i++) lager2[i] = lager[i]; Frekvens tekster = new Frekvens(lager2); tekster.finnFlest(); System.out.println("Det vanligste navnet er " + tekster.hentFlest() + " (" + tekster.hentAntall() + " forekomster)."); } }