【发布时间】:2017-10-13 13:09:07
【问题描述】:
我的屏幕上有 7 个字母 A (X = 24, y = 27), B (X = 38, y = 27), C (X = 54, y = 26), D (X = 18, y = 59), E (X = 33, y = 58), F (X = 49, y = 58) and G (X = 63, y = 57) 当我将坐标放入它们随机输入的 ArrayList 中时,我想按照它们显示的顺序对它们进行排序,当我沿着 Y 轴向下时对它们进行排序,例如,我在Y = 27 上获取所有坐标,按X 对它们进行排序,其中最小的放在ArrayList 前面等下面是我的代码:
private static void sort(ArrayList<BoxLetter> letters){
for(int i = 0; i < letters.size(); i++){
for(int j = letters.size() -1; j > i; j--){
if(letters.get(i).getCentroid().y > letters.get(j).getCentroid().y){
if(letters.get(i).getCentroid().x > letters.get(j).getCentroid().x){
BoxLetter temp = letters.get(i);
letters.set(i, letters.get(j));
letters.set(j, temp);
Logger.printMessage("Sorting");
}
}
}
}
}
当我运行我的代码时,输出是ADBCEFG,但我希望它输出ABCDEFG
我的问题是,如何在 Java 7 中以 ABCDEFG 的形式对列表进行排序?
【问题讨论】:
-
你的问题是……
-
你不清楚你在问什么。
-
它就在那里,我希望它以 ABCDEFG 的形式输出
-
我知道对于您提供的字母的 X、Y 数字,您希望算法将它们排序为 ABCDEFG。但是,我不清楚如何从给定的示例中获得该排序。请提供此类排序的逻辑。如果您想先通过
y订购然后x,那么 CBAGFED 是正确的输出。