You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据给定列表的顺序重新排列HashMap的键值对?

按指定列表顺序输出HashMap键值对

现有数据

HashMap 初始化

HashMap<String, String> map = new HashMap();

map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d");
map.put("5","e");

ArrayList 初始化

ArrayList<String> list = new ArrayList();
list.add("5");
list.add("1");
list.add("3");
list.add("4");
list.add("2");

期望输出

5 -> e
1 -> a
3 -> c
4 -> d
2 -> b

注:你提供的期望输出中2 -> a应为笔误,根据HashMap定义,键"2"对应的值是"b"。

实现方法

核心逻辑是遍历有序的ArrayList,按顺序从HashMap中取出对应键的值,利用ArrayList的有序性保证输出顺序。

完整代码示例

import java.util.ArrayList;
import java.util.HashMap;

public class OrderedMapOutput {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("1", "a");
        map.put("2", "b");
        map.put("3", "c");
        map.put("4", "d");
        map.put("5", "e");

        ArrayList<String> list = new ArrayList<>();
        list.add("5");
        list.add("1");
        list.add("3");
        list.add("4");
        list.add("2");

        // 遍历列表,按顺序输出键值对
        for (String key : list) {
            // 若列表中存在HashMap没有的键,可通过getOrDefault设置默认值
            String value = map.getOrDefault(key, "无对应值");
            System.out.println(key + " -> " + value);
        }
    }
}

关键说明

  • 直接遍历ArrayList的元素,每个元素作为键从HashMap取值,天然保证输出顺序与列表一致。
  • 使用getOrDefault是为了处理列表中存在HashMap未包含的键的情况,避免空指针异常;如果能确保所有列表元素都是HashMap的有效键,直接用map.get(key)即可。

内容的提问来源于stack exchange,提问作者Hasnain Ali Bohra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:15:57