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 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献