java - 基于 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 实现相同的功能?
解决方案
或者,如果您不想修改现有数组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();
推荐阅读
- google-bigquery - 有没有办法在 Big-query 中过滤掉我的项目中的两个特定名称?
- php - Laravel 页面自动恢复数据,无需刷新
- mysql - SQL:如何从多个表中获取计数到一个查询中?
- c# - Radzen Blazor 对话框未关闭
- laravel - Laravel 8“在此服务器上找不到请求的资源 /dashboard。”
- xamarin - 如何将数据从 TimePicker 和 Editor 传递到 Xamarin Form 中的标签?
- python - Python奇异值分解不匹配顺序和符号
- excel - 使用表格标题作为单元格中的内容
- c# - MVC 显示集合:InvalidCastException:无法将“Models.ConversionRate”类型的对象转换为“System.Collections.IEnumerable”类型
- java - 将字符串拆分为具有动态长度的不同部分