如何从arraylist中减去一些值?

时间:2014-04-06 15:26:01

标签: java arraylist subtraction

以下是一个例子:

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;

3 个答案:

答案 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()。