2014-04-06 54 views
2

下面是一个例子:如何从arraylist中减去一些值?

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

获取值,从中减去,然后放回原处。一个'ArrayList'不是一个数组。 –

+0

'subtract 4'的意思是?你到底想做什么?你想删除4个元素吗? – Vishrant

回答

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

如果你想从此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 
} 
0
for (int n : position) new_position.add(n-4); 

你并不需要使用Collection.copy()。

相关问题