黑马程序员技术交流社区
标题:
大神们看看是什么问题?
[打印本页]
作者:
邹学良
时间:
2013-3-13 13:09
标题:
大神们看看是什么问题?
本帖最后由 邹学良 于 2013-3-14 14:02 编辑
ArrayList<Map.Entry<String, Long>> inf =
new ArrayList<Map.Entry<String, Long>>(mp.entrySet());
Collections.sort(inf, new Comparator<Map.Entry<String, Long>>() {
public int compare(Map.Entry<String, Long> o1,
Map.Entry<String, Long> o2) {
return (int) ((o2.getValue())-(o1.getValue()));
}
});
FileWriter fw=new FileWriter("f:\\s.txt");
for (int x = 0; x < inf.size(); x++) {
fw.write(inf.get(x).getKey().toString()+"\r\n");//这个位置写入怎么有问题?
fw.flush();
System.out.println(inf.get(x).toString());
}
复制代码
本来是想要按顺序录入的
但程序就是不能按遍历写入?
找到问题所在了
原来是MAP中的Value值都存入了同一个数
作者:
谢洋
时间:
2013-3-14 00:19
代码这么少,没法看
作者:
张雪萍
时间:
2013-3-14 00:24
我勒个去。怎么看,太那啥了,发帖的时候上边的工具里不是有专门贴代码的嘛,符号为<>,这样代码会比较清晰。
作者:
李辉
时间:
2013-3-14 04:01
整了一个快半个小时终于破解! 不是流的问题。
第13行的 fw.write(inf.get(x).getKey().toString()+"\r\n"); 这句是没有问题的。
问题在于你的匿名类,匿名类不能在参数里定义。我一开始注意到你这种不寻常的用法了,以为是自己孤陋寡闻没见过而已,而且我把你的代码补全之后,编译也没问题,就以为这样写也可以,别的地方找来找去也找不出毛病,最后把匿名类拿出去就好了。
你这也算找到一个编译器的漏洞啊,功劳不小啊!
作者:
李辉
时间:
2013-3-14 04:25
奇怪了,我把代码又还原成你写的,重新测试好几遍,乱序的问题竟然再没重现!求真相!
作者:
fighting
时间:
2013-3-14 07:22
没有什么问题啊,不知道楼主说的是什么问题
作者:
猫腻
时间:
2013-3-14 09:29
楼主:如果有其他问题请继续追问,如果没有问题,请结贴,把“未解决”改“已解决”
作者:
yhnan
时间:
2013-3-14 13:27
我去~ 我都看晕了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2