非常讨厌。
这是我的代码:
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?
答案 0 :(得分:2)
为什么订单全部混合:S?
因为HashMap
不保证其元素的任何迭代次序。你不会得到任何不断的订单。如果您需要广告订单,请使用LinkedHashMap
。
答案 1 :(得分:0)
如果您查看docs: -
基于哈希表的Map接口实现。这个 实现提供了所有可选的map操作,以及 允许空值和空键。 (HashMap类大致是 相当于Hashtable,除了它是不同步的并允许 nulls。)这个类不保证地图的顺序;在 特别是,它不保证订单将保持不变 随着时间的推移。
这就是为什么你看到订单混乱的原因。如 @Rohit 建议,如果您想维护订单,请尝试使用LinkedHashMap
。