帮助使用比较器比较浮点成员变量

2024-02-19

我可以很好地比较字符串,但想知道如何对浮点数进行排名?

getChange() 返回一个字符串。我希望能够按降序排序。我怎样才能做到这一点?

UPDATE:

package org.stocktwits.helper;

import java.util.Comparator;

import org.stocktwits.model.Quote;

public class ChangeComparator implements Comparator<Quote>
{
    public int compare(Quote o1, Quote o2) {
        float change1 = Float.valueOf(o1.getChange());
        float change2 = Float.valueOf(o2.getChange());

        if (change1 < change2) return -1;
        if (change1 == change2) return 0; // Fails on NaN however, not sure what you want
        if (change2 > change2) return 1;
    }
}

我收到编译时错误:

This method must return a result of type int    ChangeComparator.java   

这个怎么样:

public class ChangeComparator implements Comparator<Quote>
{
    public int compare(Quote o1, Quote o2) {
        Float change1 = Float.valueOf(o1.getChange());
        Float change2 = Float.valueOf(o2.getChange());
        return change1.compareTo(change2);
    }
}

请注意,Java 1.4 引入了Float#compare(float, float) https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html#compare-float-float-(以及等效于Double),几乎可以直接使用:

public class ChangeComparator implements Comparator<Quote>
{
    public int compare(Quote o1, Quote o2) {
        return Float.compare(o1.getChange(), o2.getChange());
    }
}

(编辑后,我注意到@BorislavGizdov 已经在他的回答中提到了这一点。)


另外值得注意的是 Java 8Comparator#comparing(...) https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#comparing-java.util.function.Function- and Comparator#comparingDouble(...) https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#comparingDouble-java.util.function.ToDoubleFunction-提供了一种直接构建这些比较器的简单方法。

Comparator<Quote> changeComparator = Comparator.comparing(Quote::getChange);

将使用盒装进行比较Float values.

Comparator<Quote> changeComparator = Comparator.comparingDouble(Quote::getChange);

将比较使用float价值观提升为double values.

鉴于没有Comparator#comparingFloat(...),我的偏好是使用comparingDouble(...)方法,因为这仅涉及原始类型转换,而不涉及装箱。

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

帮助使用比较器比较浮点成员变量 的相关文章

  • 我是否需要安装 SQLite 才能使 SQLiteJDBC 正常工作?

    我想我只是没有 明白 如果我的计算机上尚未安装 SQLite 并且我想编写一个使用嵌入式数据库的 Java 应用程序 并且我将 SQLiteJDBC JAR 下载 导入到我的项目中 那么这就是我所需要的吗 或者 我是否需要先安装 SQLit
  • 对 os.listdir 文件进行排序 Python

    如果已下载数年的数据 这些数据存储在具有以下命名约定的文件中 year day dat 例如 名为 2014 1 dat 的文件包含 2014 年 1 月 1 日的数据 我需要按天排序读取这些数据文件 2014 1 dat 2014 2 d
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Spring @Cacheable 和 @Async 注解

    我需要缓存一些异步计算的结果 具体来说 为了克服这个问题 我尝试使用 Spring 4 3 缓存和异步计算功能 作为示例 我们采用以下代码 Service class AsyncService Async Cacheable users C
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也

随机推荐

  • 绑定到我当前在 caliburn 中的演示者,无需绑定约定

    在 calibburn 中 当我使用绑定约定时 并将内容控件命名为 CurrentPresenter 框架自动绑定到虚拟机并找到相关视图 如果我手动进行此绑定 则不会找到视图 如果没有绑定约定 我如何实现这种能力 我的观点是用户控件 您应该
  • Reddit 主页上的分页是如何工作的?

    Reddit 使用时间衰减算法 这意味着排序顺序可能会发生变化 当用户转到第 2 页时 是否有一种机制可以防止他们看到第 1 页上的帖子 但在翻页之前已跳至第 2 页 这只是排序方法的一个可接受的缺陷吗 或者是否为用户缓存了前几个页面 这样
  • 在android中获取网关ip地址

    如何获取网关 IP 详细信息 可以选择使用 wifimanager 但是 如果没有 wify 当使用 USB 网络共享连接时 如何在 Android 设备中查找网关 DNS 和其他详细信息 我在android 2 3 4上使用cyanoge
  • 在我的项目中实施 ACTION_OPEN_DOCUMENT 时遇到问题

    我有 AddActivity 它可以让您从相机拍摄的图片或从图库中选择的图像中获取 URI 然后就可以去DetailsActivity查看图片了 我现在可以正常工作 直到您重新启动设备为止 重新启动并尝试转到该图像的 DetailsActi
  • R:如何在省略号中使用列表元素(如参数)?

    我不确定我的问题标记是否正确 但我试一试 我想使用一个带有使用省略号的函数的包 func 我所有的课堂论点My Class都在一个列表中 因为我有很多争论 所以我想避免func arg1 arg2 arg3 所以理想情况下我想做func m
  • 如何在Matlab中区分图例和轴?

    下面的堆栈溢出问题 Matlab 如何获取图形句柄中的所有轴句柄 https stackoverflow com questions 3938348 matlab how to obtain all the axes handles in
  • gnuplot:误解数据(直方图)

    我有以下示例数据文件 我想在其中绘制gnuplot作为直方图 1 1 2 2 4 3 我正在使用以下命令来绘制数据 plot sample data with boxes 生成以下图表 然而 图表应该看起来像这样 不应该有任何价值3 Fro
  • 为什么在 CSS 中 * 比属性继承具有更多的特殊性?

    简而言之 我有一个具有这两种样式的页面 color black div error color red 页面结构如下 div class error div class row form div class column Error tex
  • 致命异常:Firebase-Messaging-Intent-Handle -- java.lang.NoClassDefFoundError

    我的项目中没有使用任何 Firebase 或 Youtube 代码 库 然而最近 在 Android 预发布报告中 我看到了以下崩溃 FATAL EXCEPTION Firebase Messaging Intent Handle Proc
  • 使用 CDN 链接和 SCSS 覆盖 bootstrap 4

    我在这里看到的关于使用 SCSS 覆盖 Bootstrap v4 的所有答案都假设 Bootstrap 或 Bootstrap 的 CSS 文件 已下载到站点目录 我通过 CDN 链接将 bootstrap 导入到我的 layout htm
  • 使用包含数字的字符串对数组进行排序[重复]

    这个问题在这里已经有答案了 可能的重复 使用 NSSortDescriptor 对 NSString 值进行排序 就像 NSInteger 一样 https stackoverflow com questions 9674707 sorti
  • 我可以将 2 个cameraUpdates 与一个 animateCamera 一起使用吗?

    我正在尝试放大地图 CameraUpdate cameraUpdate CameraUpdateFactory newLatLngBounds mBounds this getResources getDisplayMetrics widt
  • phpDocumentor - 无法打开输入文件:phpdoc.php

    我正在尝试使用 phpDocumentor 第一次 我不知道我在做什么 实际上 我只想将它与 SublimeText 2 一起使用this https github com benmatselby sublime phpdocumentor
  • 更改枢轴控件中标题和标题的背景

    在我的 Phone 7 应用程序中 我使用了枢轴控件 现在我想更改其标题和标题区域的背景 我怎样才能实现这个目标 是否有可定制的枢轴控件的整体模板 我已经尝试将包含枢轴控件的网格的背景设置为标题颜色 然后将每个枢轴项的背景设置为原始背景颜色
  • 如何在 Google Cloud Platform 中为 Node 应用程序安装 Python3

    我正在为我的 Nodejs 应用程序使用谷歌云平台 问题 部署应用程序后 我可以访问 python2 7 但不能访问版本 3 usr bin 文件夹中似乎缺少此版本 const spawn require child process spa
  • 如何在 MongoDB 中搜索子数组

    我有这个 MongoDB 集合 id ObjectId 123 from name name from email email protected cdn cgi l email protection to name domains ema
  • 将 LIKE 子句的 SQL 语法缩短为 IN 子句

    在 SQL 中 有没有办法缩短语法 Select from TableName where ColumnName like A or ColumnName like B or ColumnName like C To Select from
  • 如何处理服务延迟的数据?

    在我的角度应用程序中 我需要将数据存储到一个数组中 该数组在初始阶段为空 Example someFunction let array console log step 1 this service getRest url subscrib
  • AVAssetReader 读取音频,然后失败

    我的应用程序读取音频并在生产者 消费者设置中播放它 消费者线程请求新样本渲染到硬件 生产者线程使用 AVAssetReader 将音频数据从磁盘读取到其缓冲区中 生产者线程循环运行 检查是否需要读取更多样本 制作者的缓冲区大小等于 4 秒的
  • 帮助使用比较器比较浮点成员变量

    我可以很好地比较字符串 但想知道如何对浮点数进行排名 getChange 返回一个字符串 我希望能够按降序排序 我怎样才能做到这一点 UPDATE package org stocktwits helper import java util