public static void readAndCount() {
/**
* 1.数据读取处理(按行读取,解析出数据)
* 2.数据放入List中
* 3.进行统计:Map集合
* 4.求Top2:Queue集合
*/
String path="E:\\java\\IO\\IOTest\\test1.txt";
try {
String line=null;
BufferedReader reader = new BufferedReader(new FileReader(path));
ArrayList<Integer> list = new ArrayList<>();
while((line=reader.readLine())!=null){
String[] split=line.split(",");
for(String s:split){
Integer value=Integer.valueOf(s);
list.add(value);
}
}
Iterator<Integer> iterator = list.iterator();
HashMap<Integer,Integer> hashMap = new HashMap<>();
while(iterator.hasNext()){
Integer key=iterator.next();
if(hashMap.containsKey(key)){
hashMap.put(key,hashMap.get(key)+1);
}else{
hashMap.put(key,1);
}
}
PriorityQueue<Map.Entry<Integer,Integer>> queue = new PriorityQueue<>(2, 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>> iterator1 = hashMap.entrySet().iterator();
while(iterator1.hasNext()){
Map.Entry<Integer,Integer> entry=iterator1.next();
if(queue.size()<2){
queue.add(entry);
}else{
if(entry.getValue()>queue.peek().getValue()){
queue.remove();
queue.add(entry);
}
}
}
Iterator<Map.Entry<Integer, Integer>> iterator2 = queue.iterator();
while(iterator2.hasNext()){
Map.Entry<Integer,Integer> entry1=iterator2.next();
System.out.println(entry1.getKey()+":"+entry1.getValue());
iterator2.remove();
}
} catch (Exception e) {
e.printStackTrace();
}
}
当前输入放入文件,从文件进行读取,求出现次数最多的两个数据,打印数据本身及出现次数
最新推荐文章于 2022-08-03 17:38:23 发布