java - java中对String[]数组列表进行排序

标签 java arrays sorting arraylist

我有一个ArrayList<String[]> .

示例元素:

test,400000,30

所以Array列表包含这种类型的String数组。让我们将一个数组中的最后一个值除以中间值。所以会是这样的。

30/400000 = 0.000075

我需要按这些值(最后一个值/中间值)按升序对数组列表进行排序。

我怎样才能做到这一点?

最佳答案

您可以编写您的自定义Comparator :

public class StringArrayComparator implements Comparator<String[]> {
    @Override
    public int compare(String[] a, String[] b) {
        double aVal = Double.valueOf (a[2]) / Double.valueOf (a[1]);
        double bVal = Double.valueOf (b[2]) / Double.valueOf (b[1]);

        return Double.compare(aVal, bVal);
    }
}

然后将其与 Collections.sort 一起使用:

List<String[]> myList = /* some value */;
Collections.sort(myList, new StringArrayComparator());

注意:
此实现假设有效输入 - 所有数组(至少)都是三个元素长,第二个和第三个元素可解析为整数,并且第二个元素(我们除以的)不为零。

关于java - java中对String[]数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26440658/

相关文章:

java - 如何计算重构误差?

javascript - Lodash _.remove() 和 _.pullAt() 之间的区别

c - 当使用 realloc 并将内存写入新地址时会发生什么?

c - 合并排序列表

java - android - 布局下的按钮仍然可以触摸

java - Intellij代码格式化,保持/*package*/在同一行

java - 这个应该优化吗?

Java将二维数组传递给方法

arrays - Swift:对字典数组中的键值对进行排序

javascript - 在 JavaScript 中实现归并排序算法