以下是一个例子:
public static ArrayList<Integer> position = new ArrayList<Integer>();
public static ArrayList<Integer> new_position = new ArrayList<Integer>();
Collections.copy(new_position, position);
for (int j = 0; j < position.size(); j++) {
new_position.get(j) -=4;
}
我想要复制值,然后从我的新arraylist减去4.我怎样才能成功?
我是java的新手。我还收到了错误消息,例如:The left-hand side of an assignment must be a variable
,它指的是nowe_pozycje.get(j) -=4;
。
答案 0 :(得分:5)
您需要get()
值,更改值,然后set()
新值:
for (int j = 0; j < position.size(); j++) {
new_position.set(j, new_position.get(j) - 4);
}
另一种解决方案可能是跳过整个列表的复制,而是遍历原始列表,随时更改每个值,并将它们添加到新的List
:
public static ArrayList<Integer> new_position = new ArrayList<Integer>();
for (Integer i: position) {
new_position.add(i - 4);
}
答案 1 :(得分:1)
如果你想从ArrayList的每个元素中减去4,那么:
ArrayList<Integer> position = new ArrayList<Integer>();
ArrayList<Integer> new_position = new ArrayList<Integer>();
Collections.copy(new_position, position);
for (int j = 0; j < position.size(); j++) {
new_position.set(j, (new_position.get(j) - 4)); //remove 4 from element value
}
答案 2 :(得分:1)
for (int n : position) new_position.add(n-4);
您不需要使用Collection.copy()。