BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #15750同步于 2010/9/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

hashmap 乱序的问题

Aprilforever
2010/9/24镜像同步18 回复
rt, 第一次用hashmap 。 我是从文件中读取 30个数据存入 hashmap 中,再将这个 hashmap 中的数据提供给别的函数。但是再次取出hashmap 中数据时,发现大概是在第 18组数据后,数据顺序就乱了,情况如下: 17和18 的数据对换, 19和20 的数据对换,21和22。。。这是什么原因呢?小菜坐等达人解答。。。 对了,我在hashmap 初始化时没有明确指出所需间和增长因子,是不是和这个有关呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
asnxyx2005机器人#1 · 2010/9/24
情何以堪。。。
vcpp机器人#2 · 2010/9/24
无代码,无真相 【 在 Aprilforever 的大作中提到: 】 : rt, 第一次用hashmap 。 : 我是从文件中读取 30个数据存入 hashmap 中,再将这个 hashmap 中的数据提供给别的函数。但是再次取出hashmap 中数据时,发现大概是在第 18组数据后,数据顺序就乱了,情况如下: 17和18 的数据对换, 19和20 的数据对换,21和22。。。这是什么原因呢?小菜坐等达人解答。。。 : 对了,我在hashmap 初始化时没有明确指出所需间和增长因子,是不是和这个有关呢? : ...................
feel48机器人#3 · 2010/9/24
【 在 Aprilforever 的大作中提到: 】 : rt, 第一次用hashmap 。 : 我是从文件中读取 30个数据存入 hashmap 中,再将这个 hashmap 中的数据提供给别的函数。但是再次取出hashmap 中数据时,发现大概是在第 18组数据后,数据顺序就乱了,情况如下: 17和18 的数据对换, 19和20 的数据对换,21和22。。。这是什么原因呢?小菜坐等达人解答。。。 : 对了,我在hashmap 初始化时没有明确指出所需间和增长因子,是不是和这个有关呢? : ................... hashmap本来就没保证迭代的时候是顺序吧。 我记得treemap是有顺序的。
wodetiandi机器人#4 · 2010/9/25
应该用linkedhashmap吧,hashmap好像是无序的 ps:不用java好久,仅供别无选择时参考
Aprilforever机器人#5 · 2010/9/25
【 在 wodetiandi 的大作中提到: 】 : 应该用linkedhashmap吧,hashmap好像是无序的 : ps:不用java好久,仅供别无选择时参考 嗯,我再试试,也是初学,看到好多 Map也不知道用哪个好,就先用了 HashMap,呵呵
Aprilforever机器人#6 · 2010/9/25
【 在 feel48 的大作中提到: 】 : hashmap本来就没保证迭代的时候是顺序吧。 : 我记得treemap是有顺序的。 换了 TreeMap,果然就对了,网上搜了下这个原因,一些解释如下: HashMap岂止不能排序!就算你把排好序的元素依次放进HashMap、过段时间其次序会随机变乱的。 HashMap不能保证元素顺序、遇到虚拟机不定时的整理内存堆肯定会把其次序打乱、只能保证元素不会丢。 看到上面两段我就有疑问了,如果说 HashMap 中,就算你把排好序的元素依次放进HashMap、过段时间其次序会随机变乱的。 那么引入它的最初动机是什么呢?仅仅是为了保存数据,而不管数据间原有顺序?还是说 HashMap 还有更大的作用?不过不管怎么说,我觉得这个原有顺序是必须得保证的呀。。。 呵呵,由于刚学,各种疑问啊,期待解答ing [em18]
ericyosho机器人#7 · 2010/9/25
hashmap是用来快速地搜索的。
ddi机器人#8 · 2010/9/25
总的来说 hashpmap是效率最高的 treemap可以保持按key排序 linkedhashmap可以按照你put的顺序有序
Aprilforever机器人#9 · 2010/9/25
【 在 ddi 的大作中提到: 】 : 总的来说 hashpmap是效率最高的 : treemap可以保持按key排序 : linkedhashmap可以按照你put的顺序有序 “treemap可以保持按key排序 linkedhashmap可以按照你put的顺序有序 ” 这个对我太有用了,看了这个才知道根据需求,自己的程序里最好还是得用 linkedhashmap,谢谢啊~