package paz1a.practicals.cvicenie11;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Kolekcie {
public List<Double> vypisPodpriemer() {
Scanner sc = new Scanner(System.in);
sc.useLocale(Locale.US);
List<Double> zoznamCisel = new ArrayList<>();
while (sc.hasNext()) {
double num = sc.nextDouble();
if (num < 0) {
System.out.println("Nacitavanie sa skoncilo");
sc.close();
/*
* for (int i = 0; i < zoznamCisel.size(); i++) {
* System.out.println(zoznamCisel.get(i).toString()); }
*/
/*
* Iterator<Double> spracovavac = zoznamCisel.iterator();
* while(spracovavac.hasNext()) {
* System.out.println(spracovavac.next().toString()); }
*/
double sum = 0;
for (Double cislo : zoznamCisel) {
sum += cislo;
}
double priemer = sum / zoznamCisel.size();
Collections.sort(zoznamCisel);
Iterator<Double> spracovavac = zoznamCisel.iterator();
while (spracovavac.hasNext()) {
Double cislo = spracovavac.next();
if (cislo < priemer) {
System.out.println(cislo);
} else {
break;
}
}
/*
* for (Double cislo : zoznamCisel) { System.out.println(cislo.toString()); }
*/
break;
} else {
zoznamCisel.add(num);
}
}
return zoznamCisel;
}
public Set<String> spolocnePrednasky1(String a) {
File subor = new File(a);
Scanner sc = null;
Scanner scSlova = null;
String riadok = null;
String slovo = null;
Set<String> predmetyPrvy = new HashSet<String>();
Set<String> predmetyDruhy = new HashSet<String>();
try {
sc = new Scanner(subor);
riadok = sc.nextLine();
scSlova = new Scanner(riadok);
while (scSlova.hasNext()) {// slova
slovo = scSlova.next();
slovo = slovo.toUpperCase();
predmetyPrvy.add(slovo);
}
while (sc.hasNextLine()) {// riadkoch
riadok = sc.nextLine();
scSlova = new Scanner(riadok);
while (scSlova.hasNext()) { // slovach
slovo = scSlova.next();
slovo = slovo.toUpperCase();
predmetyDruhy.add(slovo);
}
predmetyPrvy.retainAll(predmetyDruhy);
predmetyDruhy.clear();
}
} catch (Exception e) {
// TODO: handle exception
}
if (sc != null) {
sc.close();
}
return predmetyPrvy;
}
public Set<String> spolocnePrednasky2(File filename) {
try (Scanner sc = new Scanner(filename)) {
Set<String> setPredmetov = new HashSet<>();
if (!sc.hasNextLine()) {
return null;
}
String[] riadok = sc.nextLine().toUpperCase().split(" ");
List listRiadku = Arrays.asList(riadok);
setPredmetov = new HashSet<>(listRiadku);
Set<String> pomocnySet = new HashSet<>();
while (sc.hasNextLine()) {
String[] riadokN = sc.nextLine().toUpperCase().split(" ");
List listRiadkuN = Arrays.asList(riadokN);
pomocnySet = new HashSet<>(listRiadkuN);
setPredmetov.retainAll(pomocnySet);
}
return setPredmetov;
} catch (FileNotFoundException e) {
}
return null;
}
public void frekvencnaAnalyza(File subor) {
Map<Character, Integer> frekvenciaZnakov = new HashMap<>();
Scanner sc = null;
try {
sc = new Scanner(subor);
while (sc.hasNext()) {
String s = sc.next();
for (int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
if (frekvenciaZnakov.containsKey(c)) {
frekvenciaZnakov.put(c, frekvenciaZnakov.get(c) + 1);
} else {
frekvenciaZnakov.put(c, 1);
}
}
}
System.out.println(frekvenciaZnakov);
for (int i = 0; i < 10; i++) {
int maxValue = 0;
Character maxChar = 0;
Set<Character> mnozinaZnakov = frekvenciaZnakov.keySet();
for (Character znak : mnozinaZnakov) {
int value = frekvenciaZnakov.get(znak);
if (value > maxValue) {
maxChar = znak;
maxValue = value;
}
}
System.out.println(maxChar + ": " + maxValue);
frekvenciaZnakov.remove(maxChar, maxValue);
if (frekvenciaZnakov.isEmpty()) {
break;
}
}
} catch (
FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (sc != null) {
sc.close();
}
}
}