在java中对包含对象的数组列表进行排序

时间:2012-04-11 18:25:25

标签: java sorting

我有一份链表清单。

    List<LinkedList<File1>> lists = 
        Collections.synchronizedList(new ArrayList<LinkedList<File1>>());

每个链表包含File1类型的对象。

class File1
{
    int dist,nod;       
}

任何人都可以帮我根据dist对元素进行排序。

我想过使用collections.sort()但是在这种情况下不能使用它,所以有人能提出更好的建议吗?

3 个答案:

答案 0 :(得分:6)

迭代你的arraylist中的每个链表,然后对其进行排序。但是为了确保元素在dist上排序,您应该实现Comparable:

public class File1 implements Comparable<File1>
{
    int dist, nod;

    public int compareTo(File1 f)
    {
        return Integer.compare(dist, f.dist);
    }
}

答案 1 :(得分:4)

您可以使用Collections.sort() method that accepts a Comparator.

对内部或外部列表进行排序

public static void sort(列表列表,                         比较器c)

答案 2 :(得分:3)

将Collections.sort()与自定义比较器一起使用,该比较器比较每个对象的dist值。