Java 遍历hashmap

Java 遍历hashmap,java,hashmap,Java,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}); d

非常粗糙的东西

这是我的代码:

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);
    }
Map data=newhashmap();
数据.put(“1”,新对象[]{“供应商名称”、“国家代码”、“前缀”、“汇率”、“货币”});
data.put(“2”,新对象[]{10d,“John”,1500000d});
data.put(“3”,新对象[]{2d,“Sam”,800000d});
data.put(“4”,新对象[]{3d,“Dean”,700000d});
Set keyset=data.keyset();
int rownum=0;
用于(字符串键:键集){
系统输出打印项次(键);
}
结果是:3,2,1,4

为什么所有的订单都是混合的:S

为什么所有的订单都是混合的:S

因为a不保证它的元素的任何迭代顺序。你不会得到任何固定的订单。如果需要插入顺序,请使用。

查看以下内容:-

基于哈希表的映射接口实现。这 实现提供了所有可选的映射操作,以及 允许空值和空键。(HashMap类大致如下所示 与哈希表等效,只是它不同步且允许 null。)该类不保证映射的顺序;在里面 特别是,它不能保证订单保持不变 随着时间的推移


这就是为什么你看到订单变得混乱的原因。正如@Rohit所建议的,如果您想保持顺序,请尝试使用
LinkedHashMap

如果您想按字母顺序排列,请使用TreeMap。