Java TreeMap 比较器

2023-11-25

我需要一个 TreeMap 的比较器。我应该在 TreeMap 的构造函数中匿名编写此代码吗?我还能怎么写我的比较器。目前,Java 不喜欢我的代码(我可以匿名执行此操作吗?):

SortedMap<String, Double> myMap = 
    new TreeMap<String, Double>(new Comparator<Entry<String, Double>>()
    {
        public int compare(Entry<String, Double> o1, Entry<String, Double> o2)
        {
            return o1.getValue().compareTo(o2.getValue());
        } 
    });
  1. 我可以匿名进行上述操作吗?
  2. 我还能怎么做呢?
  3. 我想按值而不是键对 myMap 进行排序

你无法排序TreeMap关于价值观。

基于红黑树的 NavigableMap 实现。映射根据其键的自然顺序进行排序,或者通过映射创建时提供的比较器进行排序,具体取决于使用的构造函数 您需要提供comparator for Comparator<? super K>所以你的比较器应该比较键。

要对您需要的值进行排序排序集. Use

SortedSet<Map.Entry<String, Double>> sortedset = new TreeSet<Map.Entry<String, Double>>(
            new Comparator<Map.Entry<String, Double>>() {
                @Override
                public int compare(Map.Entry<String, Double> e1,
                        Map.Entry<String, Double> e2) {
                    return e1.getValue().compareTo(e2.getValue());
                }
            });

  sortedset.addAll(myMap.entrySet());

给你举个例子

    SortedMap<String, Double> myMap = new TreeMap<String, Double>();
    myMap.put("a", 10.0);
    myMap.put("b", 9.0);
    myMap.put("c", 11.0);
    myMap.put("d", 2.0);
    sortedset.addAll(myMap.entrySet());
    System.out.println(sortedset);

Output:

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

Java TreeMap 比较器 的相关文章

  • 如何将画廊意图中的“打开”更改为“完成”?

    我使用以下意图打开画廊来选择多个图像和视频 Intent intent new Intent intent setType image video intent putExtra Intent EXTRA ALLOW MULTIPLE tr
  • createImage(int width, int height) 的问题

    我有以下代码 作为游戏的一部分每 10 毫秒运行一次 private void gameRender if dbImage null createImage returns null if GraphicsEnvironment isHea
  • 使用 Ant 将非代码资源添加到 jar 文件

    我正在将 java 应用程序打包成 jar 文件 我正在使用 ant 和 eclipse 我实际上需要在 jar 中直接在根文件夹下包含几个单独的非代码文件 xml 和 txt 文件 而不是与代码位于同一位置 我正在尝试使用includes
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • 如何将崩溃的“故障偏移”与源代码匹配?

    我编译的 EXE 总是崩溃 当事件查看器崩溃时 我有以下信息 异常代码 0xc0000008故障偏移 0x00000000000cb8e8 如何将 故障偏移 与我的 C 代码相匹配 有一个 PDB文件放在 Release 文件夹中 只是不确
  • 在 PostgreSQL 中搜索 jsonb 数组

    我正在尝试在 PostgreSQL 9 4 中搜索 JSONB 对象 我的问题类似于这个线程 然而我的数据结构略有不同 这给我带来了问题 我的数据结构是这样的 id 1 msg testing id 2 msg tested id 3 ms
  • 有角度的可折叠手风琴

    我正在制作手风琴 在角度应用程序中使用 javascript 制作可折叠的 div 如果点击按钮后没有打开Parent One或任何其他父母姓名 Html div div
  • 使用 ggplot2 根据条形图的大小(即数值)对条形图进行排序

    这个问题询问如何根据未汇总的表格订购条形图 我的情况略有不同 这是我的部分原始数据 experiment pvs id src hrc mqs mcs dmqs imcs dna wm 0 7 9 4 454545454545454 1 4
  • 如何将逗号分隔字符串中的空字符串替换为零?

    8 5 1 4 7 7 1 9 3 6 8 6 3 9 2 5 4 3 2 7 4 1 1 4 6 9 5 5 1 6 3 6 5 7 4 1 7 6 8 5 7 1 3 9 我正在做一个编程挑战 我需要将此序列解析为我的数独脚本 需要将上
  • 棒棒糖 android 5.0.1 三星上的 /system/lib/libart.so 发生本机崩溃

    我在 Google Play 商店上有一个使用 cordova 构建的应用程序 该应用程序适用于所有设备和型号 除了少数运行 Android 5 0 1 的三星设备 Note3 和 Note4 该应用程序在启动时崩溃 崩溃堆栈跟踪如下 Bu
  • ASP.NET Webform 是否被隐藏起来,为 MVC 腾出空间?

    我读过所有关于 mvc 和 webforms 如何互补等的营销演讲 然而 似乎所有博客都在谈论 mvc 而唯一发布的消息也是关于 mvc 的 Microsoft 是否会继续以一等公民的身份改进 Web 表单 还是只是将其作为一项受支持的技术
  • MOVZBL 指令在 IA-32 AT&T 语法中起什么作用?

    这个指令到底有什么作用 movzbl 0x01 eax ecx eax AT T 语法将movzxIntel指令助记符对于不同的源大小分为不同的助记符 movzb vs movzw 在英特尔语法中 它是 movzx eax byte ptr
  • Phonegap jQuery Mobile 文本输入 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我希望有人能够告诉我为什么我的文本输入在使用 jque
  • Python中的数字比较用“is”好还是“==”好? [复制]

    这个问题在这里已经有答案了 在Python中比较两个数字是使用 is 运算符还是 运算符更好 例子 gt gt gt a 1 gt gt gt a is 1 True gt gt gt a 1 True gt gt gt a is 0 Fa
  • 发送邮件:java.net.SocketException:网络无法访问:连接

    尝试通过 javax mail 发送邮件 Properties props new Properties props put mail smtp host xxxxx props put mail smtp port 25 props pu
  • Laravel 4 - 尝试获取非对象的属性

    我一直在使用 Laravel 4 1 创建一个具有用户关系的图书列表应用程序 我的用户关系正常工作 但是当我添加分页时 出现以下错误异常 ErrorException Trying to get property of non object
  • 您应该在 C# 4.0 中使用重载或可选参数来声明方法吗?

    我当时正在看Anders 谈论 C 4 0 和抢先预览 C 5 0 这让我思考当 C 中提供可选参数时 推荐的方法是什么来声明不需要指定所有参数的方法 例如类似的东西FileStream类有大约十五个不同的构造函数 它们可以分为逻辑 家族
  • 为什么字段分隔符只能是一个字节?

    data lt read delim C test txt header FALSE sep Error in scan file what sep sep quote quote nlines 1 quiet TRUE invalid s
  • 将 Objective-c 框架导入到 Swift 框架项目中

    我正在构建一个框架 需要在其中导入一些 Objective C 框架 现在我需要导入 Beaconstac framework 但我们无法在 swift 框架项目中添加桥接头 我如何在我的项目中使用这个框架 I tried 进口信标 但编译
  • Auth0 和 React 的 CORS 问题

    我目前正在尝试在我的 NodeJS React 应用程序中实现 Auth0 尽管我有一个大问题 但给出的教程确实很好并且很有帮助 每次我尝试通过 Auth0 登录 注册时 我都会得到 XMLHttpRequest 无法加载https XYZ
  • 将数据从活动传递到对话框

    我正在寻找一种将数据从活动传递到对话框的方法 我正在尝试打电话showDialog int 但是我没有看到将任何数据传递到对话框的方法 我需要将一个字符串传递到对话框才能显示确认 Cheers 如果您的目标是 Android 2 2 API
  • 如何使窗口出现在所有内容之上(甚至是全屏游戏!)c++/Qt

    我正在尝试制作一个在屏幕中心显示十字准线并保持在其他所有内容之上的应用程序 目的是在一些不提供十字准线的 FPS 游戏中添加十字准线 我已经成功地将我的窗口设置为除了游戏之外的所有内容的最上面 这是我的代码 一切都在主要部分 因为我只测试我
  • 当前 Android Google Spreadsheet API 编写示例

    我正在寻找一个编写 Google 电子表格并从 Android 向其中添加行的示例 到目前为止 我发现的所有示例都已过时 仅包含身份验证 或仅列出文档 电子表格 不包含任何写入 您知道创建电子表格并向其中添加行的任何示例吗 以下是适用于 G
  • Java TreeMap 比较器

    我需要一个 TreeMap 的比较器 我应该在 TreeMap 的构造函数中匿名编写此代码吗 我还能怎么写我的比较器 目前 Java 不喜欢我的代码 我可以匿名执行此操作吗 SortedMap