当前位置: 首页 > 知识库问答 >
问题:

使用比较器对数组列表进行排序(Java)

萧星火
2023-03-14

我一直在做拼字游戏作业。我需要从列表中读取单词,然后读取每个字符并赋值,最终为每个单词分配一个总分。已经完成了!唷。现在我需要使用比较器将单词从最高分到最低分进行排序。读了很多,还是很迷茫。我知道我可以使用接口,但也有使用lambda表达式的比较器,这是我想去的方向。我只是不知道该怎么做。我需要比较每个单词的sumValue,然后按降序打印单词。

我创建了 2 个循环来读取单词 (i),然后是字符 (j)。我已经将每个单词的分数(sumValue)及其在ArrayList中的位置(i)打印到屏幕上。现在我需要使用比较器来比较分数,然后对位置重新排序。我认为我的问题是我觉得我没有对数组列表进行排序。我正在对不在 ArrayList 中的分数进行排序。我是否需要创建一个新的 ArrayList,每个单词都附加分数并对其进行排序?

共有1个答案

邵麒
2023-03-14

我举一个根据单词长度排列列表的例子。这里的比较器是字符串的长度。下面的代码是JavaScript,但逻辑是相似的。

如果您正在寻找一个Java的解决方案Java比较器类对数组进行排序,此链接也可能会有所帮助

const arr = ["first", "second", "third", "fourth"];
const out = arr
  .map((item) => ({
    word: item,
    len: item.length
  }))
  .sort((a, b) => a.len < b.len ? -1 : 1)
  .map(item => item.word)

console.log(out)
 类似资料:
  • 问题内容: 说,我们有以下二维数组: 应该如何声明Java 类以使用降序按数组的第一个元素对数组进行排序?供参考的功能是: 问题答案: […]应该如何声明Java Comparator类以按其降序将数组的第一个元素排序 […] 这是使用Java 8的完整示例: 输出: 对于Java 7,你可以执行以下操作: 如果你不幸无法在Java 6或更早版本上运行,请执行以下操作:

  • 是的,这是家庭作业,但我一直在想什么。comparator类应该实现java。util。sort()方法的第二个参数应该是我的Comparator类的一个实例。 到目前为止,我的comparator类如下所示: 我有一个单独的方法对数组进行排序,但此方法使用compareTo() 除了使用单独的comparator类之外,我应该使用什么方法?我完全不知道该怎么办。 我的Rational类看起来像:

  • 所以我正在使用一些预先存在的比较器,它们比较两个元组中的某些值,如果第一个大于第二个,则返回true,否则返回false。这是其中之一的代码: 现在,我有一个字典,里面有许多上面比较的类型的元组条目。我想以相反的顺序对它们进行排序,但我真的不知道如何完成。我在想这样的事情: 但是我不知道向比较器传递什么,因为每个比较器都有两个参数(subInfo1、subInfo2)。我不能更改比较器函数。

  • 问题内容: 我知道有几个这样的问题,但是它们似乎对我没有用。 我有一个列表,5元素乘以50。我想通过对每个元素应用自定义比较功能来对列表进行排序。此函数计算要对元素进行排序的列表的适用性。我创建了两个函数,比较和适应性: 和 然后我尝试通过以下方式致电给他们: 要么 要么 要么 我也尝试了具有相同参数的list.sort()。但是无论如何,函数都不会将列表作为参数,而是作为参数。我不知道为什么,这

  • 我有以下清单: 这是我的比较器函数: 我正在尝试使用它排序如下: 我不明白为什么第一个NaN不在列表的末尾。 我对升序排序列表的预期输出是: 我对降序排序列表的预期输出是: 在升序排序和降序排序的情况下,我希望NaNs在最后。 我知道sortwith使我们能够编写自己的比较器。有人能帮我吗?

  • 我正试图根据员工的加入日期对他们的列表进行排序。下面是我的员工类。 下面是我的比较器类: