public class GetDataTimes {
public static void main(String[] args) {
String path = "D:\\test\\readerFile.txt";
FileInputStream fileInputStream = null;
BufferedReader bufferedReader = null;
HashMap<Integer, Integer> hashMap = new HashMap<>();
try {
bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String s;
while ((s=bufferedReader.readLine()) != null) {
String[] split = s.split(",");
for (int i = 0; i < split.length; i++) {
Integer integer = Integer.valueOf(split[i]);
if (hashMap.containsKey(integer)) {
hashMap.put(integer, hashMap.get(integer) + 1);
} else {
hashMap.put(integer, 1);
}
}
}
PriorityQueue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>(new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o1.getValue() - o2.getValue();
}
});
Iterator<Map.Entry<Integer, Integer>> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, Integer> next = iterator.next();
if (queue.size() < 5) {
queue.add(next);
} else if (next.getValue().compareTo(queue.peek().getValue()) > 0) {
queue.poll();
queue.add(next);
}
}
Iterator<Map.Entry<Integer, Integer>> iterator1 = queue.iterator();
while (iterator1.hasNext()) {
Map.Entry<Integer, Integer> next = iterator1.next();
System.out.println(next.getKey() + ":" + next.getValue());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null)
fileInputStream.close();
if (fileInputStream != null)
fileInputStream.close();
if (bufferedReader != null)
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}