Java排序数组由第三个元素组成

2 java arrays sorting

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

例:

如果我最初有这个数组:

String [][] array = new String[][] {
  {"Barcelona", "156", "1604"}, 
  {"Girona", "256", "97"},
  {"Tarragona", "91", "132"},
  {"Saragossa", "140", "666"}
}
Run Code Online (Sandbox Code Playgroud)

我希望它成为这个:

{
  {"Barcelona", "156", "1604"}, 
  {"Saragossa", "140", "666"}, 
  {"Tarragona", "91", "132"}, 
  {"Girona", "256", "97"}
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Jur*_*raj 5

按asc排序:

Arrays.sort(array, Comparator.comparingInt(a -> Integer.valueOf(a[2])));
Run Code Online (Sandbox Code Playgroud)

按desc排序:

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());
Run Code Online (Sandbox Code Playgroud)