A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邹学良 中级黑马   /  2013-3-13 13:09  /  1654 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邹学良 于 2013-3-14 14:02 编辑
  1. ArrayList<Map.Entry<String, Long>> inf =
  2. new ArrayList<Map.Entry<String, Long>>(mp.entrySet());
  3. Collections.sort(inf, new Comparator<Map.Entry<String, Long>>() {
  4. public int compare(Map.Entry<String, Long> o1,
  5. Map.Entry<String, Long> o2) {
  6. return (int) ((o2.getValue())-(o1.getValue()));
  7. }
  8. });

  9. FileWriter fw=new FileWriter("f:\\s.txt");

  10. for (int x = 0; x < inf.size(); x++) {
  11. fw.write(inf.get(x).getKey().toString()+"\r\n");//这个位置写入怎么有问题?
  12. fw.flush();
  13. System.out.println(inf.get(x).toString());
  14. }
复制代码
本来是想要按顺序录入的
但程序就是不能按遍历写入?

找到问题所在了
原来是MAP中的Value值都存入了同一个数

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

7 个回复

倒序浏览
代码这么少,没法看
回复 使用道具 举报
我勒个去。怎么看,太那啥了,发帖的时候上边的工具里不是有专门贴代码的嘛,符号为<>,这样代码会比较清晰。
回复 使用道具 举报
整了一个快半个小时终于破解! 不是流的问题。
第13行的 fw.write(inf.get(x).getKey().toString()+"\r\n"); 这句是没有问题的。
问题在于你的匿名类,匿名类不能在参数里定义。我一开始注意到你这种不寻常的用法了,以为是自己孤陋寡闻没见过而已,而且我把你的代码补全之后,编译也没问题,就以为这样写也可以,别的地方找来找去也找不出毛病,最后把匿名类拿出去就好了。
你这也算找到一个编译器的漏洞啊,功劳不小啊!

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
奇怪了,我把代码又还原成你写的,重新测试好几遍,乱序的问题竟然再没重现!求真相!
回复 使用道具 举报
没有什么问题啊,不知道楼主说的是什么问题
回复 使用道具 举报
猫腻 高级黑马 2013-3-14 09:29:24
7#
楼主:如果有其他问题请继续追问,如果没有问题,请结贴,把“未解决”改“已解决”
回复 使用道具 举报
yhnan 中级黑马 2013-3-14 13:27:44
8#
我去~   我都看晕了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马