[英]Iterate through hashmap
很烦的东西。
这是我的代码:
Map<String, Object[]> data = new HashMap<String, Object[]>();
data.put("1", new Object[] {"VENDOR_NAME", "COUNTRY_CODE", "PREFIX" , "RATE" , "CURRENCY" });
data.put("2", new Object[] {10d, "John", 1500000d});
data.put("3", new Object[] {2d, "Sam", 800000d});
data.put("4", new Object[] {3d, "Dean", 700000d});
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
System.out.println(key);
}
结果:3,2,1,4
为什么所有命令都混合了:S?
为什么所有命令都混合了:S?
因为HashMap
不能保证其元素的任何迭代顺序。 您将不会得到任何恒定的顺序。 如果需要插入顺序,请使用LinkedHashMap
。
如果您看一下文档 :
基于哈希表的Map接口的实现。 此实现提供所有可选的映射操作,并允许空值和空键。 (HashMap类与Hashtable大致等效,不同之处在于它是不同步的,并且允许为null。)该类不保证映射的顺序。 特别是,它不能保证顺序会随着时间的推移保持恒定。
这就是为什么您看到订单混合在一起的原因。 按照@Rohit的建议,如果要维护顺序,请尝试使用LinkedHashMap
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.