内の 2 つのオブジェクトを交換しようとしていますArrayList
。これを達成するために、オブジェクトが交換された新しいリストを作成し、古いリストを完全に交換されたリストで上書きします。ただし、古いリストから新しいリストにオブジェクトを追加するのに問題があります。
このプログラムは、テキスト ファイルから入力を取得し、データをオブジェクト ( の拡張である円と四角形) に読み取り、GeometricObject
それらのオブジェクトをArrayList
呼び出された に追加しますobjectList
。
コードは次のとおりです。
public static <E extends Comparable<E>> void swapCells
(ArrayList<E> objectList, int left, int right) {
/* The user may enter the two indices, "left,"
* and, "right," in any order which they desire.
* Because of this it will be necessary to determine
* which is larger or "right" index, and which is
* the smaller or "left" index
*/
int temp;
ArrayList<GeometricObject> swappedList = new ArrayList<GeometricObject>();
if (left > right) {
// Exchanges left and right
temp = left;
left = right;
right = temp;
}
for (int i = 0; i < objectList.size(); i++) {
if (i == left) {
swappedList.add(objectList.get(right));
System.out.println( swappedList.get(i).getArea());
} else {
swappedList.add((E) objectList.get(i));
}
}
} // End of swapCells
次の構文エラーが発生しましたが、どうすればよいかわかりません。
add(GeometricObject)
型のメソッドArrayList<GeometricObject>
は引数に適用できません(E)
エラーは具体的には、swappedList.add(objectList.get(right));
およびwappedList.add((E) objectList.get(i));
です。