对于我在 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 个条目加载到内存中可能是不明智的。我想最好只加载单独的行并进行比较,而不是一次抓取所有内容。这个逻辑合理吗?从这里得到的任何建议都会很有用。