gpt4 book ai didi

java - 将整数列表排序为 Java 中的字符串列表

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:59 25 4
gpt4 key购买 nike

我有一个简单的整数数组,我想按字符串规则对它们进行排序

示例: {1, 7, 43, 15, 2, 12} -> {1, 12, 15, 2, 43, 7}

我环顾四周,发现 Integer.toString(int)String.valueOf(int) 但这需要创建一个新的 String 数组并分别转换它们并排序它并将其转换回 Integer 并重新分配它。另外,我认为 Comparator 不会有太大不同。

那么还有更多的方法可以做到这一点吗?

最佳答案

两个直接的选择是:

  • 创建 List<String>来自你的 List<Integer> ,然后对该 String 列表进行排序,最后将其转回 Integer 列表。
  • 使用自定义比较器

主要区别:当您最初创建字符串列表时,您必须执行该转换 Integer -> String ... 每个输入数字恰好一次

当您在比较器中执行此操作时,您可能会更频繁地执行此操作!因为您将使用 Comparator<Integer, Integer> ...这将始终需要将两个参数都转换为字符串。或者进行相对昂贵的数学运算来确定输入数字的“长度”。

除此之外:除非我们谈论的是适用于数百万个数字的代码;或者这被称为每分钟数千次……担心性能是完全错误的。担心代码的可读性;以及将来维护它所需的努力。

最后:如果您认为这是一个挑战,如何使用“有趣”的方式解决这个问题;另一种解决方案:您可以使用一些 Pair<String, Integer>类(class);使用从整数生成的字符串。现在将它们放入列表中,并使用比较器对 Pair 的字符串部分进行排序。那么你不需要另一个转换;您只需遍历这些对,然后从每对中获取整数。但同样,这是微观绩效管理,只是“为了好玩”。

关于java - 将整数列表排序为 Java 中的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com