【问题标题】:Sorting ArrayList<String[]> [duplicate]排序 ArrayList<String[]> [重复]
【发布时间】:2015-05-08 02:43:58
【问题描述】:

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

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

在某些循环和更改之后,我得到如下内容:

name1 name2 0.11
name1 name3 0.14
name2 name4 0.12

我需要按第三列对它们进行排序。怎么可能实现?

【问题讨论】:

  • 我投票结束这个问题作为离题,因为它表明没有研究工作
  • 为什么不在你的类中实现一个 Comparable 接口来挑选一个特定的值来排序?
  • 首先...这些“某些循环和变化”是什么
  • 将 Collections.sort() 与比较器一起使用

标签: java sorting arraylist


【解决方案1】:

请注意,这将按字典顺序进行比较 - 也就是说,如果您有数字 1.0、2.0、10.0、11.0 和 20.0,则顺序将为 1.0、10.0、11.0、2.0 和 20.0。

这是 Java 8 中使用简单 Comparator 的一种非常基本的方法。请注意,这不会检查任何一方的 null。

Comparator<String[]> stringArrayComparator = (left, right) ->
                         left[2].compareTo(right[2]);

然后您可以在 Collections.sort 中使用它。

Collections.sort(outerArr, stringArrayComparator);

【讨论】:

    【解决方案2】:

    您可以使用Column Comparator,这是一个通用的Comparator,允许您指定要排序的列。

    ColumnComparator 将处理存储在数组或列表中的数据。

    如果您不想使用该类,该博客还展示了如何创建一个简单的Comparator for a given column in theArray`。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2017-06-01
      • 2021-11-04
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      相关资源
      最近更新 更多