题5
来源:互联网 发布:淘宝免单活动在哪里看 编辑:程序博客网 时间:2024/06/08 16:52
题目描述:有两个文件,文件每一行是一个访问IP,请将两个文件合并成一个文件,新文件中每一行有两个字段:IP和IP出现的总次数,并按IP的出现的总次数降序排序。
例:
文件a:
100.1.2.3
200.1.2.3
192.168.0.1
…
文件b:
200.1.2.3
192.168.0.1
192.168.0.1
合并后得到的新文件c:
192.168.0.1 3
200.1.2.3 2
100.1.2.3 1
代码:
import java.io.*;import java.util.*;public class Main { public static void main(String[] args) { String patha="C://a.txt"; String pathb="C://b.txt"; HashMap<String,Integer> map=new HashMap<>(); getMap(patha,map); getMap(pathb,map); List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); StringBuffer sb=new StringBuffer(); for(Map.Entry<String,Integer> e:list){ System.out.println(e.getKey()+"----->"+e.getValue()); sb.append(e.getKey()+" "+e.getValue()+"\r\n"); } try { FileWriter writer=new FileWriter("C://c.txt"); BufferedWriter bw=new BufferedWriter(writer); bw.write(sb.toString()); bw.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } public static void getMap(String path,Map<String,Integer> map){ BufferedReader br=null; try { InputStream is=new FileInputStream(path); br=new BufferedReader(new InputStreamReader(is)); String line=""; while((line=br.readLine())!=null){ line=line.trim(); if(!map.containsKey(line)){ map.put(line,1); }else map.put(line,map.get(line)+1); } } catch (Exception e) { e.printStackTrace(); }finally { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } }}
阅读全文
0 0
- 5题
- 题5
- 笔试题5(编程题)
- 面试算法题5
- 经典SQL题5
- 面试模拟题5
- IBM笔试题5
- DP经典5题
- 分享Java题5
- java笔试题5
- 笔试题(5)
- 逻辑思维笔试题5
- 第一章第5题
- 第5题作业
- 第一章第5题
- DP经典5题
- 第5题
- 第5题
- 信用卡秒到
- BSUIR Open 2017 Finals Financial Reports(线段树)
- linux下安装不同python版本的切换
- unity5.5安装
- [BZOJ2733][HNOI2012]永无乡-Treap-启发式合并
- 题5
- Classpath entry org.maven.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published 警告
- STL源码解析笔记(1)--空间配置器
- Android逆向之路---改apk包名、达到多开效果
- 最简单的android studio调用ffmpeg动态库
- Android开发--DrawerLayout和NavigationView
- Android 自定义View之处理wrap_content,padding问题分析
- AngularJS里面的$timeout和$interval服务
- Unity ulua ugui 获取 InputField 框