小编rir*_*roo的帖子

Java:对列表进行排序

我有一个点列表,即:List<List<Point>>.例如:

List<Point> lp;
List<List<Point>> Llp;
Llp.add(lp);
Run Code Online (Sandbox Code Playgroud)

lp将是我的矩阵的第一行(x = 0).Llp是整个矩阵.

我想根据每个点的x和y对列表进行升序排序.我只设法将内部列表排序,但不是整个列表.有人可以帮我吗?谢谢.这是我的代码,用于根据y对内部列表(即矩阵的第一行)进行排序.

private void ord_horiz (List<Point> tab)
{
    boolean ordered_horiz = false;
    int size = tab.size();

    while(!ordered_horiz)
    {
        ordered_horiz = true;

        for(int i=0 ; i < size-1 ; i++)
        {
            if(tab.get(i).y > tab.get(i+1).y)
            {
                swap(tab, i, i+1);
                ordered_horiz = false;
            }
        }
        size--;
    }   
}

private void swap(List<Point> tab, int ind1, int ind2) 
{
    Point c;
    c = tab.get(ind1); 
    tab.set(ind1, tab.get(ind2));
    tab.set(ind2, c);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止编写的代码:

Collections.sort(tab,new Comparator<List<Point>>(){ …
Run Code Online (Sandbox Code Playgroud)

java sorting collections list point

5
推荐指数
1
解决办法
7031
查看次数

标签 统计

collections ×1

java ×1

list ×1

point ×1

sorting ×1