【发布时间】:2016-01-11 22:02:25
【问题描述】:
所以我正在尝试按升序(按区域)对几何对象的数组列表进行排序。但是,我遇到了一个错误
The method add(GeometricObject) in the type ArrayList<GeometricObject> is not applicable for the arguments (double)
在我的代码块中
private static void selectionSort(ArrayList<GeometricObject> list) {
for (int i = 0; i < list.size(); i++) {
if (i < list.size() - 1) {
if (list.get(i).getArea() > list.get(i + 1).getArea()) {
double j = list.get(i).getArea();
list.remove(i);
list.add(i, list.get(i));
list.remove(i + 1);
list.add(j).getArea();
i = -1;
}
}
}
}
行
list.add(j).getArea();
再次,我只是想按区域的顺序对它们进行排序,以便稍后打印数组。任何正确方向的帮助或指示将不胜感激,谢谢!
【问题讨论】:
-
为什么要将
double添加到ArrayList<GeometricObject>? -
这些行的目的到底是什么:
list.add(i, list.get(i));和list.add(j).getArea();?对我来说没有多大意义 -
啊,我什至没有发现自己facepalm。我想我可能已经通过将 j 设置为 GeometricObject 并删除 getArea 方法并对 list.add(j) 行执行相同的操作来解决该错误。 @SotiriosDelimanolis
-
对我来说也没有什么意义,哈哈,我以为我只是在交换区域,而实际上我应该交换整个对象列表顺序。 @保罗
-
为什么不想使用标准的 java Collections.sort 和 Comparator 进行排序?
标签: java sorting object arraylist