Java 按第三个元素对数组进行排序

标签 java arrays sorting

我想按下降的第三列对字符串数组的后代进行排序,问题是我想按它的数值进行排序。

示例:

如果我最初有这个数组:

String [][] array = new String[][] {
  {"Barcelona", "156", "1604"}, 
  {"Girona", "256", "97"},
  {"Tarragona", "91", "132"},
  {"Saragossa", "140", "666"}
}

我希望它变成这样:

{
  {"Barcelona", "156", "1604"}, 
  {"Saragossa", "140", "666"}, 
  {"Tarragona", "91", "132"}, 
  {"Girona", "256", "97"}
}

我怎样才能做到这一点?

最佳答案

按升序排序:

Arrays.sort(array, Comparator.comparingInt(a -> Integer.valueOf(a[2])));

按描述排序:

Arrays.sort(array, Comparator.comparingInt(a -> Integer.valueOf(a[2])*-1)); 
// or this
Arrays.sort(array, Comparator.comparingInt((String[] a) -> Integer.valueOf(a[2])).reversed());

关于Java 按第三个元素对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41601156/

相关文章:

java - If 语句未处理 - Java

java - 如何将多个 fxml 与 javaFX 一起使用?

c# - 在 Android 中调用 .Net Web 服务失败

java - 在 Java Web 应用程序中从应用程序服务器外部提供静态数据的最简单方法

c# - 如何在 C# 中从第二项开始获取新数组?

arrays - 为什么不使用 .map 从 stringArray 中删除最后一个句号

java - 在 Java 中使用 stream.sorted() 进行排序

javascript - 如何在 JavaScript 中以增量方式调用数组的 INDEX 值

javascript - Xaxis 数据按降序提供给 highcharts 但 xaxis 仍然按升序出现

generics - 如何将 Dictionary<string, object> 的键转换为已排序的 string[]