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

时间:2014-10-18 14:12:51

标签: java arrays sorting arraylist

我有ArrayList<String[]>

示例元素:

test,400000,30

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

30/400000 = 0.000075

我需要按照这些值(lastvalue / middlevalue)按升序对数组列表进行排序。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以撰写自定义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());

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