【问题标题】:Java's equivalent of Javascript's array.sort([compareFunction])?Java 相当于 Javascript 的 array.sort([compareFunction])?
【发布时间】:2018-10-28 17:20:05
【问题描述】:

我该怎么写:(javascript)

array.sort((a, b) => a - b)

Java? -- 我已经试过了:

Arrays.sort(array, (a, b) -> a - b);

但我得到一个错误,说没有找到合适的方法。

【问题讨论】:

  • Arrays.sort(array)。这是文档。阅读。这就是它的用途:docs.oracle.com/javase/8/docs/api/java/util/Arrays.html
  • 此外,为比较器实现执行minus 会隐藏边缘情况的错误。不要那样做。例如有Integer::compareComparator.reverseOrder()
  • 你们在说什么??每次我在这个网站上问一个问题时,我得到的只是“这里的文档”当然我已经看过了……这个网站的意义何在?
  • 假设您确实读过它,这很好。现在,什么array?它是一个基元数组,一个对象数组吗?您尝试了什么确切的代码但失败了?如果它确实失败了什么消息。这个网站是关于编程问题(明确)的——你的问题还不是很清楚
  • 我会假设,如果有区别,唯一可能的方法是有意义的,那就是整数?鉴于这只是从一种语言到另一种语言的翻译,因此不需要发生什么错误,甚至不需要知道它做了什么,只是给定的,现在翻译。

标签: arrays sorting lambda java-8


【解决方案1】:

不是很好用 javascript,但是searching for how javascript sorts elements,你的代码

array.sort((a, b) => a - b)

似乎是按升序对数组进行排序,同时巧合地看着at another question from you,java中这种排序的等效代码是

public static int[] smallestToLargestArrangement(int[] arr) {
     Arrays.sort(arr);  // sorts ascendingly
     return arr;
}

注意:- 我尝试将您的试验的上下文联系起来以提出该方法,一般方法是在何时内联 sort 调用必填。

【讨论】:

  • 是的,这在运行时是等效的,但不完全相同...在 javascript 中,您可以只使用 arr.sort() 在 Java 中使用 Arrays.sort(arr),但要回答这个问题...我需要Arrays.sort(arr, and then some comparator function equivalent to javascript )。您会看到这样做的原因是在 javascript array.sort() 中采用了一个 compareFunction,它将遍历每个项目 (a,b) 并进行比较,以便您可以进行自定义排序。
  • @C.Nemeth 那么您已经在另一个问题的链接中找到了答案,该问题被标记为重复。不是吗?
【解决方案2】:

好吧,经过几天和大约 12 个小时的工作,我设法自己解决了这个问题……谢谢 ;-)

import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;


public class Solution {
   public static int largestArrangement(int[] arr) {
      return Integer.parseInt(StringUtils.join(Arrays.stream(arr).boxed().sorted((a, b) -> Integer.parseInt(""+b+a) - Integer.parseInt(""+a+b)).mapToInt(i -> i).mapToObj(String::valueOf).toArray(String[]::new), ""));
   }
}

【讨论】:

  • 换句话说,您的问题甚至与您在问题中发布的内容不匹配。如果您发布了对实际问题的合理描述,您肯定会在更短的时间内得到解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 2021-10-18
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
相关资源
最近更新 更多