Java 排序数组列表<;字符串[]>;

Java 排序数组列表<;字符串[]>;,java,sorting,arraylist,Java,Sorting,Arraylist,我有一个具有以下语法的数组: ArrayList<String[]> outerArr = new ArrayList<String[]>(); String[] str = {art1, art2, String.valueOf(sim)}; outerArr.add(str); 我需要按第三列对它们进行排序。如何实现?预先警告,这将按字典顺序进行比较-也就是说,如果您有数字1.0、2.0、10.0、11.0和20.0,顺序将是1.0、10.0、11.0、2.0和20

我有一个具有以下语法的数组:

ArrayList<String[]> outerArr = new ArrayList<String[]>();
String[] str = {art1, art2, String.valueOf(sim)};
outerArr.add(str);

我需要按第三列对它们进行排序。如何实现?

预先警告,这将按字典顺序进行比较-也就是说,如果您有数字1.0、2.0、10.0、11.0和20.0,顺序将是1.0、10.0、11.0、2.0和20.0

在Java8中,这是一种非常基本的方法,使用一个简单的
比较器
。请注意,这不会检查任何一侧的空值

Comparator<String[]> stringArrayComparator = (left, right) ->
                         left[2].compareTo(right[2]);
您可以使用,它是一个通用的
比较器
,允许您指定要排序的列

列比较器将处理存储在数组或列表中的数据


如果你不想使用这个类,博客还展示了如何为数组中的给定列创建一个简单的
比较器。

我投票将这个问题作为主题外的问题来结束,因为它没有显示任何研究工作为什么不在你的类中实现一个可比较的接口来选择一个特定的值进行排序?首先。。。这些“特定循环和更改”是什么?使用Collections.sort()和比较器
Comparator<String[]> stringArrayComparator = (left, right) ->
                         left[2].compareTo(right[2]);
Collections.sort(outerArr, stringArrayComparator);