a978306291 2019-07-15 07:39 采纳率: 0%
浏览 419

为什么往哈希映射中添加键值对,输出却是有序的?

代码:
import java.util.HashMap;

import java.util.Map;

public class TQ {

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Map<String,String> hm= new HashMap<String,String>();
    hm.put("002", "孙悟空");
    hm.put("005", "白龙马");
    hm.put("003", "猪八戒");
    hm.put("004", "沙悟净");
    hm.put("001", "唐   僧");
    System.out.println("原始哈希映射:"+hm);
}

}
图片说明

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-07-15 09:22
    关注

    这个顺序是无法保证的,升序只能理解为因为它们都是字符串常量,所以它们的地址按照某种循序排列,导致hash存在顺序
    但是你插入别的,特别是运算的道德字符串作为key而不是这种写死的,就未必了

    要固定顺序,参考:
    https://blog.csdn.net/nju_mc/article/details/52931468

    或者人为对keyset排序

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算