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

如何在Java中使用collection.sort lambda表达式对数量不定的变量进行排序?

杨和蔼
2023-03-14
Collections.sort(weakSortedPolys,
                        (firstP, secondP) -> firstP.termList.head.term.exp < secondP.termList.head.term.exp ? -1
                                : firstP.termList.head.term.exp > secondP.termList.head.term.exp ? 1
                                        : firstP.expCumSum < secondP.expCumSum ? -1
                                                : firstP.expCumSum > secondP.expCumSum ? 1 : 0);

共有1个答案

潘衡
2023-03-14

我不会给你答案,这样你就可以很高兴地让它自己工作。这个想法和比较两个字符串是一样的。在两个字符串中同时向左向右推进一个字符。比较字符对。只要他们是平等的,继续前进。当你发现一个不相等的对时,字符的顺序给出字符串的顺序。如果一个字符串用光了字符,而另一个字符串仍有一些字符,则另一个字符串大于一个字符串。如果你到达两个字符串的末尾,它们是相等的。

作为一个lambda,它看起来像

(a, b) -> {
  for (int i = 0; i < Math.min(a.length(), b.length()); ++i) {
    if (a.charAt(i) < b.charAt(i)) return -1;
    if (a.charAt(i) > b.charAt(i)) return +1;
  }
  return a.length() < b.length() ? -1 : a.length() > b.length() ? +1 : 0;
}

如果多项式存储为链表,那么需要两个指针而不是单个索引来跟踪术语,但逻辑是相似的。

 类似资料:
  • 这个问题有一个关于如何使用多行lambda表达式对List进行排序的答案: 不幸的是,这似乎不适用于原始数组: 如何在Arrays.sort()中使用多行lambda表达式对原始数组进行排序? 我对任何其他方法(不必使用)都很好,只要它使用lambda表达式(没有比较器)。

  • 问题内容: 我想在内部使用,该怎么办Python? 问题答案: 从python 3.6开始,你还可以使用文字字符串插值。在你的特定情况下,解决方案是:

  • 问题内容: 我想在JavaScript中创建一个方法,并且我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我能做到这一点已经将取代所有的实例有。 但是我想做这样的事情: 但是显然这只会替换文本…所以如何将这个变量传递给我的正则表达式字符串? 问题答案: 代替使用语法,可以构造一个新的RegExp对象: 您可以通过这种方式动态创建正则表达式对象。然后,您将执行以下操作:

  • 本文向大家介绍如何在Java中声明lambda表达式中的变量,包括了如何在Java中声明lambda表达式中的变量的使用技巧和注意事项,需要的朋友参考一下 lambda表达式 是一个函数,期望并接受输入参数,并产生输出结果。它是功能接口 的实例,也称为单个抽象方法接口(SAM 接口),如Runnable,Comparator,Callable 等。我们可以将变量声明为final string []

  • 问题内容: 我需要对一个包含每个人年龄的数组列表进行排序,但是我必须打印出一个65岁以上的人的列表。我知道如何用SQL而不是Java来做到这一点。任何帮助,将不胜感激。谢谢! 问题答案: 首先,请确保您已充分说明了问题,然后考虑首先要使用的算法(不是特定于语言的);然后实施算法。 如果问题仅在于列出年龄在65岁以上(不是65岁或65岁以上)的所有人员,则只需要遍历该数组,并针对每一行检查年龄是否符

  • 本文向大家介绍如何在变量中的JSP中使用XPath表达式的值?,包括了如何在变量中的JSP中使用XPath表达式的值?的使用技巧和注意事项,需要的朋友参考一下 <X:集>标签集以XPath表达式的值的变量。 如果XPath表达式的结果为布尔值,则<x:set>标记将设置一个java.lang.Boolean对象;否则,该值为false。对于字符串,java.lang.String; 以及一个数字,