ポイントのリストのリストがありますList<List<Point>>
。例えば:
List<Point> lp;
List<List<Point>> Llp;
Llp.add(lp);
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);
}
これまでに書いたコードは次のとおりです。
Collections.sort(tab,new Comparator<List<Point>>(){
@Override
public int compare(List<Point> o1, List<Point> o2) {
if(o1 != null && o2 !=null)
{
Point var1 = o1.get(0);
int var1_x = var1.x;
int var1_y = var1.y;
Point var2 = o2.get(0);
int var2_x = var2.x;
int var2_y = var2.y;
Integer.compare(var1_x, var2_x);
Integer.compare(var1_y, var2_y);
return /* What shall I return ? */;
}
return 0;
}
});
これが私のコンソール出力のスクリーンショットです。その点を整理してほしい。 http://imageshack.us/scaled/large/515/38zy.png