首页 > 解决方案 > 基于 Java 标准的排序(自定义排序)

问题描述

如何根据条件对数组进行排序?

在 Python 中,我可以做这样的事情

arr.sort(key=lambda x: x/(10**len(str(x))-1),reverse=True)

例子 :

arr=[3,30,34,5,9]

排序后

arr=[9,5,34,3,30]

如何使用 Java 实现相同的功能?

标签: javapythonarrayssortingcomparator

解决方案


或者,如果您不想修改现有数组arr,您可以使用:

int[] sortedArr = Arrays.stream(arr)
        .boxed()
        .sorted(Comparator.comparingDouble(
                (Integer x) -> x / (Math.pow(10, x.toString().length() - 1))).reversed())
        .mapToInt(i -> i)
        .toArray();

推荐阅读