为什么 Collections.max() 不返回字符串集合的实际最大值?

2024-02-07

ArrayList<String> dirNo = new ArrayList<String>();

dirNo.add("1");
dirNo.add("2");
dirNo.add("3");
dirNo.add("4");
dirNo.add("5");
dirNo.add("6");
dirNo.add("7");
dirNo.add("8");
dirNo.add("9");
dirNo.add("10");
dirNo.add("11");

System.out.println("max : " + Integer.parseInt(Collections.max(dirNo)));

执行以上代码后,打印9作为输出。

但实际上最大值应该是11.

为什么我得到9作为最大?


由于你的元素是字符串,Collections.max()返回最大的值按字典顺序 http://en.wikipedia.org/wiki/Lexicographical_order.

如果您希望以数字方式比较字符串,则需要使用双参数版本Collections.max() http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#max%28java.util.Collection,%20java.util.Comparator%29并提供适当的比较器:

    ArrayList<String> dirNo = new ArrayList<String>();

    dirNo.add("1");
    dirNo.add("2");
    dirNo.add("3");
    dirNo.add("4");
    dirNo.add("5");
    dirNo.add("6");
    dirNo.add("7");
    dirNo.add("8");
    dirNo.add("9");
    dirNo.add("10");
    dirNo.add("11");

    Comparator<String> cmp = new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
        }
    };
    System.out.println("max : " + Collections.max(dirNo, cmp));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Collections.max() 不返回字符串集合的实际最大值? 的相关文章

  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List

随机推荐

  • Jquery Draggable 具有多个句柄

    是否有可能有一个draggable具有多个句柄的元素 我初始化它两次 每次都使用不同的句柄参数 但它不起作用 只有第一个起作用 您应该只传递 handle 参数一次 它可以是选择器或元素 因此 要使其与多个句柄一起使用 elem dragg
  • 编写字体查看器 - 获取字体属性,动态加载 ttf

    我正在尝试使用 VB6 VB5 代码 在 Windows 下 为 TrueType OpenType 字体编写一个字体查看器 这是令人惊讶的困难 1 在VB winAPI中 我没有找到如何提取字体的名称或一般的字体属性 2 我可以安装字体
  • preg_match_all 和引号内的换行符

    另一个菜鸟正则表达式问题 问题 我可能做了一些愚蠢的事情 所以我想我应该利用 SO 常客的聪明才智 尝试匹配换行符 但前提是它们出现在双引号或单引号内 我还想捕获引号之间但不包含换行符的字符串 好的 这就是我得到的 有输出 下面是我想要得到
  • 在 Eclipse Maven 项目中找不到 persistence.xml

    我无法修复persistence xml file not foundeclipse问题 这是一个简单的测试项目 Maven Nature 用于非常基本的EJB测试 该文件确实在src main resources META INF 这是p
  • 应用程序开发人员犯的数据库开发错误[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么Java 8中没有BooleanConsumer?

    恐怕这是一个有点愚蠢的问题 有没有人可以告诉我为什么没有BooleanConsumer与相反BooleanSupplier https docs oracle com javase 8 docs api java util function
  • 获取泛型参数的类型

    我编写了一个小函数来更好地处理类型 function evaluate variable any type string any switch type case string return String variable case num
  • 如何在Java中创建临时目录/文件夹?

    是否有一种标准且可靠的方法在 Java 应用程序中创建临时目录 有Java 问题数据库中的一个条目 http bugs java com bugdatabase view bug do bug id 4735419 其中的注释中有一些代码
  • 如何将 pandas 数据添加到现有 csv 文件?

    我想知道是否可以使用 pandasto csv 函数将数据框添加到现有 csv 文件 csv 文件与加载的数据具有相同的结构 您可以在 pandas 中指定 python 写入模式to csv http pandas pydata org
  • Scala 何时需要分号

    我在工作中被锁定的电脑困住了 但我正在尝试练习我的 Scala 我正在使用 Ideone com 因为我什至无法安装scalac 无论如何 这不能编译 class DPt var name String var x Double var y
  • 如何在Lucene文档中定义主键字段以获得最佳的查找性能?

    在我的 Lucene 索引 v7 2 中创建文档时 我添加了uid包含唯一 id key 字符串 的字段 doc add new StringField uid uid Field Store YES 为了稍后检索该文档 我为给定的唯一 I
  • 模板中的 django 请求

    我已经启用了 Django 请求处理器 TEMPLATE PROCESSORS django core context processors auth django core context processors debug django
  • 一些 Alt 键会更改我的 RichTextBox 字体

    我正在 Windows 窗体中创建一些印地语打字应用程序 我用过KrutiDev010字体 某些字符有一些 Alt 键控制代码 但如果我输入其他一些 Alt 键控制代码 例如Alt 0261 Alt 025896然后它打印一个章程 攨分别并
  • XSL 文档的仅 IE7 样式表

    如何将仅限 IE7 及更低版本的样式表添加到 XSL 页面 我尝试将其添加到标题信息模板中 如下所示
  • Meteor、Ember.js 和 Backbone.js 之间的主要区别是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android应用程序中的模块间(库项目)通信

    在下图中 我有 3 个模块 作为 android 库 它们扩展了基本的 通用组件模块 并且所有这 3 个模块都将添加到单个 android 应用程序中 所有3个模块都是独立的模块 但是当它作为一个应用程序时 它需要共享一些数据 启动其他模块
  • 为什么 gets(stdin) 返回一个整数?以及其他错误[重复]

    这个问题在这里已经有答案了 我是 C 编程新手 尽管我有 Java 经验 阅读了一些教程后 我决定开始解决编码挑战编码字节 https www coderbyte com 我尝试的第一个挑战是this one https www coder
  • 使用 Internet Explorer 11 和 Selenium(任何版本)和 IEWebDriver(任何版本)找不到任何元素

    我已经到处寻找答案 但找不到任何解决我的问题的方法 我正在尝试在 IE11 中运行我的 Selenium 测试 所有其他浏览器都可以正常工作 包括 Edge 如下简单测试就会导致问题 System setProperty webdriver
  • 使用 joblib 时就地更新批量图像数组

    这是我对以下问题的解决方案的后续问题 如何将函数并行应用于 numpy 数组中的多个图像 https stackoverflow com a 48374491 2956066 我建议的解决方案 https stackoverflow com
  • 为什么 Collections.max() 不返回字符串集合的实际最大值?

    ArrayList