【问题标题】:How to print the hashmap values from the order they inserted into the hashmap如何从它们插入哈希图中的顺序打印哈希图值
【发布时间】:2012-08-14 16:46:12
【问题描述】:

我有一个以字符串为键和值的 HashMap,

HashMap dataSet = new HashMap();

dataSet.put("A1", "Aania");
dataSet.put("X1", "Abatha");
dataSet.put("C1", "Acathan");
dataSet.put("S1", "Adreenas");

我想按插入HashMap的顺序打印,所以输出应该是这样的,

A1, Aania
X1, Abatha
C1, Acathan
S1, Adreenas  

谁能告诉我怎么做?

【问题讨论】:

    标签: java string hashmap


    【解决方案1】:

    您可以改用LinkedHashMap,这将保留插入顺序。标准的HashMap 无法满足您的要求。

    此实现与 HashMap 的不同之处在于,它维护一个双向链表,贯穿其所有条目。这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。

    所以你的代码的第一行会变成:

    Map dataSet = new LinkedHashMap();
    

    您可能还希望添加泛型作为一种良好做法:

    Map<String, String> dataSet = new LinkedHashMap<String, String>();
    

    【讨论】:

    • 你能告诉我如何使用LinkedHashMap和打印数据吗?使用 LinkedHashMap 代替 HashMap 不是问题。如果它可以工作,我可以使用 LinkedHashMap
    • @Roshanck 我添加了一些代码。您可以打印地图:System.out.println(dataSet);
    • 您能否提供一个示例,说明如何按插入顺序从 LinkedHashMap 中检索键和值? Println 只会使用 toString ,这在您需要处理数据时无济于事。
    【解决方案2】:

    你不能一个哈希图没有内部顺序

    您将不得不使用 Map 的另一个实现

    【讨论】:

    • 您忘记提及 要使用哪个 Map 的其他实现。
    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2017-08-16
    • 2014-11-30
    相关资源
    最近更新 更多