import java.io.File;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Skola {
public Set<String> prednaskyZRiadku(String s) {
Set<String> prednasky = new HashSet<String>();
Scanner riadkovyCitac = new Scanner(s);
while (riadkovyCitac.hasNext()){
prednasky.add(riadkovyCitac.next().toUpperCase());
}
return prednasky;
}
public Set<String> spolocnePrednasky(String subor) {
Scanner citac = null;
Set<String> vysledok = null;
int pocetStudentov = 0;
try {
citac = new Scanner(new File(subor));
while (citac.hasNextLine()) {
String line = citac.nextLine();
Set<String> prednasky = prednaskyZRiadku(line);
if (pocetStudentov == 0)
vysledok = prednasky;
else
vysledok.retainAll(prednasky);
pocetStudentov++;
}
} catch (Exception e) {
System.err.println("Chyba");
} finally {
if (citac != null)
citac.close();
}
return vysledok;
}
public Set<String> prednaskySViacAko(String subor, int pocet) {
Scanner citac = null;
Map<String, Integer> tabulka = new HashMap<String, Integer>();
int pocetStudentov = 0;
try {
citac = new Scanner(new File(subor));
while (citac.hasNextLine()) {
Set<String> prednasky = prednaskyZRiadku(citac.nextLine());
Iterator<String> it = prednasky.iterator();
while (it.hasNext()) {
String prednaska = it.next();
if (tabulka.containsKey(prednaska)) {
tabulka.put(prednaska, tabulka.get(prednaska) + 1);
} else {
tabulka.put(prednaska, 1);
}
}
pocetStudentov++;
}
} catch (Exception e) {
System.err.println("Chyba");
} finally {
if (citac != null)
citac.close();
}
Set<String> vysledok = new HashSet<>();
for (String prednaska: tabulka.keySet()) {
if (tabulka.get(prednaska) >= pocet) {
vysledok.add(prednaska);
}
}
return vysledok;
}
}