如何根据列对arraylist进行排序?

时间:2014-03-01 10:22:33

标签: java algorithm

我想根据专栏对Arraylist进行排序。

示例:

输入: -

5.1,3.5,1.4,0.2,Iris-setosa

4.9,3.0,1.4,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

4.6,3.1,1.5,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

输出: -

关于Ist专栏

4.6,3.1,1.5,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

4.9,3.0,1.4,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

5.1,3.5,1.4,0.2,Iris-setosa

关于第二栏

4.9,3.0,1.4,0.2,Iris-setosa

4.6,3.1,1.5,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

5.1,3.5,1.4,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

类似于第二列的第二列

2 个答案:

答案 0 :(得分:3)

您可能需要编写自定义排序。查看ComparableComparator

有些事情:

public class MyComparator implements Comparator<List<MyObject> {
    int columnToSortOn;
    public MyComparator(int columnToSortOn) {
        this.columnToSortOn = columnToSortOn;
    }
    @Override
    public int compare(List<MyObject> list1, List<MyObject> list2) {
        return list1.get(columnToSortOn).compareTo(list2.get(columnToSortOn));
    }
}

答案 1 :(得分:1)

你可以查看java.util.Comparator接口及其在java.util.Collections.sort(List,Comparator)中的用法 这允许您定义对象的绝对排序。

供参考,您可以查看以下链接:http://www.coderanch.com/t/370133/java/java/Sort-Multiple-Columns