今天写了一段代码,打印出一段文本的行号与行的文本。结果发现输出的行数是这样的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 16 19 18 21 20 23 22 25 24 27 26 29 28 31 30 34 35 32 33
经过几番查找,最终将问题定位于HashMap的使用上,经过网上相关文章的介绍,我了解到:
HashMap的输出 (不同的编译器会有不同顺序的输出):
查找解决方案
TreeMap的输出比HashMap更加具有可预言性。注意在TreeMap中映射以关键字的字母顺序存储。不同于HashMap的输出,在一个实际的世界日历程序中,TreeMap的输出将更加有用。正如前面提及的,使用TreeMap数据结构的一个缺点是,当你在TreeMap结构中“put”或“remove”元素时,因为需要排序从而需要一些开销,这会影响到程序的性能。(译注:可以先使用HashMap,在需要顺序输出时,通过把HashMap对象作为参数传入,构造一个TreeMap达到高性能同时满足排序的双重目的)。
相关文章
http://www.cnblogs.com/kentyshang/archive/2007/07/04/805397.html