java初学者:如何在哈希图中对键进行排序?

2024-01-20

我是java新手,正在学习哈希图的概念。

我很困惑哈希图中的键是如何排序的。 我知道它基于字符串长度。 但我很困惑当字符串长度相同时数据如何排序。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class HashMapExample
{

    public static void main(String args[])
    {
        Map<String,String> map = new HashMap<String,String>(20);//SPECIFYING THE TYPE FOR FINDING HASH CODES.


        //Adding values to the HashMap
        map.put("key value a", "test value 1");
        map.put("key value b", "test value 2");
        map.put("key value c", "test value 3");

        System.out.println("Retrieving values from HashMap");
        retrieveValuesFromListMethod(map);
        System.out.println("**********************");


    }

    /*This method retrieves values from Map
     */
    public static void retrieveValuesFromListMethod(Map map)
    {
        Set keys = map.keySet();
        Iterator itr = keys.iterator();

        String key;
        String value;

        while(itr.hasNext())
        {
            key = (String)itr.next();
            value = (String)map.get(key);
            System.out.println(key + " - "+ value); 
        }
    }
}

这是我的代码。

输出是

Retrieving values from HashMap
key value c- test value 3
key value b- test value 2
key value a- test value 1
**********************

但是如果我给出 aa,ab,ac 则输出是不同的

Retrieving values from HashMap
key value ab - test value 2
key value aa - test value 1
key value ac - test value 3
**********************

对于 1,2,3

Retrieving values from HashMap
key value 1 - test value 1
key value 2 - test value 2
key value 3 - test value 3
**********************

hashmap中是如何排序的?请帮忙!!

提前致谢。


java.util.HashMap 是无序的;你不能也不应该假设 除此之外的任何事情。

此类不保证映射的顺序;特别是,它不保证顺序保持不变 随着时间的推移。

java.util.LinkedHashMap 使用插入顺序。

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

java.util.TreeMap,一个 SortedMap,使用自然或自定义排序 的按键。

映射根据其键的自然顺序进行排序,或者通过映射创建时提供的比较器进行排序,具体取决于哪个 使用构造函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java初学者:如何在哈希图中对键进行排序? 的相关文章

随机推荐

  • 无法在 Android Studio 0.2.5 上“制作项目”Android Maven

    我正在尝试在 Android Studio 0 2 5 上构建 Android Maven 项目当我使用命令行构建时没问题 mvn clean install 但是 当按 Android Studio 工具栏上的 make project
  • 为什么当shared_ptr调用派生和基析构函数时,unique_ptr只调用基析构函数? [复制]

    这个问题在这里已经有答案了 为什么以下代码的输出会根据我是否使用shared ptr or unique ptr 的输出shared ptr这是有道理的 因为该对象已完全被破坏 而在unique ptr 只有基类部分被破坏 我以为当我使用智
  • Android:通过视频动态模糊表面

    我正在构建一个 Android 应用程序 其中 ExoPlayer 在 SurfaceView 的表面上播放视频 并且我正在研究是否可以动态模糊播放的视频 涉及首先生成要模糊的视图位图的模糊技术将不起作用 因为 SurfaceView 的表
  • WIX 安装程序未正确显示 WixUI 对话框的自定义图像

    In my WIX我正在使用自定义安装程序WixUIDialogBmp安装人员的图像Welcome and Completion页 但如下图所示 图像无法正确显示 我正在尝试遵循这个官方文档 http wixtoolset org docu
  • 解决这个分配珠子难题的算法?

    假设你有一个圆圈 如下所示 N点 并且你有N珠子分布在槽中 Here s an example 每个珠子都可以顺时针移动X插槽 这需要花费X 2美元 您的目标是最终在每个槽中获得一颗珠子 完成这项任务至少需要花多少钱 这个问题更有趣的变体
  • 加载后获取 Highcharts 系列数据

    我试图在调用 Highcharts 图表并将其加载到页面后获取系列数据 到目前为止 我只成功地获得了一堆字符串 这显然不是我想要的 不知道是否有人可以帮助我解决这个问题 jQuery 代码 success function chartDat
  • Spring AOP 创建额外的 bean

    我正在玩Spring AOP 这是一个简单的类 public class CModel extends Car private double torqueMeasure 1 public CModel System out println
  • 如何使用 kubernetes python 客户端排空节点?

    我正在尝试使用官方的 kubernetes 工作节点自动化kubernetes python 客户端 https github com kubernetes incubator client python 我目前正在寻找一种方法安全地将所有
  • Jena Fuseki 服务器命令未找到

    我是 Jena Fuseki 服务器的新手 根据链接http jena apache org documentation serving data index html http jena apache org documentation
  • 如何在 jenkins 上使用 ant 从 .product 构建 eclipse rcp 应用程序

    我想构建一个 Eclipse RCP 应用程序 我有一个产品配置文件和一个带有许多第三方插件的目标平台 从 Eclipse IDE 的导出工作完美无缺 但这很难说是专业的 所以我也想让它在詹金斯上工作 构建服务器从 SVN 获取文件 没有
  • matlab/octave - 广义矩阵乘法

    我想做一个函数来概括矩阵乘法 基本上 它应该能够执行标准矩阵乘法 但它应该允许通过任何其他函数更改两个二元运算符的乘积 和 目标是在 CPU 和内存方面尽可能高效 当然 它的效率总是低于 A B 但操作员的灵活性是这里的重点 这是我阅读后可
  • `this.some_property` 在匿名回调函数中变为未定义

    所以我不太明白为什么这个变量这个任务在我的目标对象内部的添加事件侦听器中变得未定义 我有一种感觉 它可能与异步编程有关 我仍然不完全理解 抱歉 我有点 JS 菜鸟 但是如果你们能向我解释我做错了什么以及什么可能是更好的解决方案 那就太棒了
  • 使用 Azure AD 多租户进行 Azure AD B2C 身份验证

    我已按照本文配置了 Azure AD 多租户身份验证 https learn microsoft com en us azure active directory b2c identity provider azure ad multi t
  • 如何刷新 iframe url?

    我正在使用 ionic 创建一个应用程序 其中使用 iframe 显示 URL 这是 HTML 代码 这是角度js scope iframeHeight window innerHeight document getElementById
  • 自适应卡 - 以字节为单位提供图像

    我正在尝试将图像放入 Bot 框架中的自适应卡中 如下所示 card Body Add new AdaptiveImage Type Image Url new Uri pictureUrl Size AdaptiveImageSize L
  • jQuery .val() 在更改选择框时返回未定义

    我有一个带有一些日期的选择框 我想在输入更改时获取所述日期的值 我的价值总是变得不确定 date pick change function var values date pick selected val alert values Fid
  • 在 C# 中直接在 DateTimePicker 上转到月份和年份

    如果用户在我的中输入日期 我该如何实现这一点DateTimePicker它会自动聚焦月份部分 输入该月份部分后 会转到年份部分 因为我不希望他必须按右键才能聚焦 有没有办法以编程方式执行此操作 用户不可能已经单击月份或年份部分 因为他使用键
  • 构建管道的默认分支。这是什么意思?

    在 Azure DevOps Services 的发布工作流程中 在设置持续部署触发器时 有一个选项 构建管道的默认分支 我不明白这意味着什么以及如何查看项目中不同管道的默认分支 任何有关这方面的文档的参考也会有所帮助 这也出现在管道中的其
  • 如何将 DataFrame 的列名从字符串转换为整数

    在下面的代码中 我将一个字符串读入 DataFrame 但即使输入字符串的标头是数字 它们也会作为字符串读入 1 2 有没有办法将它们作为数字读取 或者随后将它们转换为数字 import pandas as pd from StringIO
  • java初学者:如何在哈希图中对键进行排序?

    我是java新手 正在学习哈希图的概念 我很困惑哈希图中的键是如何排序的 我知道它基于字符串长度 但我很困惑当字符串长度相同时数据如何排序 import java util HashMap import java util Iterator