gpt4 book ai didi

java - 迭代 LinkedHashMap 值未排序?

转载 作者:行者123 更新时间:2023-12-01 21:53:33 26 4
gpt4 key购买 nike

对于我用 Java 设计的问题,我得到了日期和中奖彩票号码的列表。我应该和他们一起做事,然后按顺序把他们吐出来。我决定选择LinkedHashMap来解决,Date包含日期,int[]包含中奖号码数组。

事情是,当我运行 .values() 函数时,我注意到数字不再排序(通过插入)。我正在运行的代码是:

    for(int i = 0; i < 30; i++){ //testing first 30 to see if ordered
System.out.println(Arrays.toString((int [])(winningNumbers.values().toArray()[i])));
}

有人能看出我到底做错了什么吗?几乎想只使用 .get() 并迭代日期,因为日期确实按某种顺序排列,但这可能会使使用 LinkedHashMap 毫无意义。在这种情况下,不妨使用二维 ArrayList[][]。提前致谢!

编辑:添加代码以供进一步检查!

抽奖类:http://pastebin.com/9ezF5U7e文本文件:http://pastebin.com/iD8jm7f8

要进行测试,请调用 checkOldLTNums()。只要向它传递任何 int[] 数组,它就不会利用它,至少与这个问题相关。输出与 .txt 中的第一行不同,后者是经过组织的。谢谢!

编辑2:

我想我已经明白为什么失败了。我使用了一个较小的 .txt 文件,代码运行得很好。将 1900 个条目加载到内存中可能并不明智。我认为最好只加载单独的行并比较它们,而不是一次抓取所有内容。这个逻辑合理吗?从这里提出的任何建议都会很有用。

最佳答案

values() 方法将按照插入的顺序返回 Map 的值,这就是的顺序 的意思是,不要将其与排序混淆,这意味着不同的事情 - 项目遵循值的Comparator定义的顺序或其自然顺序,如果未提供比较器。

也许您最好使用 SortedMap 来按键对项目进行排序。总结一下:LinkedHashMap有序的TreeMap排序

关于java - 迭代 LinkedHashMap 值未排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com