如果我有ArrayList
喜欢:
[20,5,7,9]
我希望添加20+5
和7+9
并创建一个新值来替换我添加的两个值,因此我会创建一个new ArrayList
,如:
[25,16]
我该怎么做呢?我是否只需创建int
结果并声明新的ArrayList
,然后将值替换为new ArrayList
?或者我可以在计算值时编辑ArrayList
吗?
答案 0 :(得分:1)
您可以在原始ArrayList
中执行此操作:
的伪代码:
for(the next two elements)
get the sum
set the first element to the sum
delete the second
代码:
for(int i = 0; i < (list.size() - 1); i++) {
int sum = list.get(i) + list.get(i + 1);
list.set(i, sum);
list.remove(i + 1);
//i is incremented by ONE, because the element
//after i was just deleted.
}
答案 1 :(得分:1)
public static void main(String []args){
List<Integer> list = new ArrayList<Integer>(Arrays.asList(20, 5, 7, 9));
List<Integer> list2 = new ArrayList<Integer>();
for(int i=0; i< list.size(); i++){
if (i % 2 == 1) {
continue;
}
list2.add(list.get(i) + (list.size() > i + 1 ? list.get(i+1) : 0 ));
}
for(Integer it : list2) {
System.out.println(it);
}
}
}
答案 2 :(得分:1)
我会尝试以下方法:
...
List<Integer> result = new ArrayList<Integer>();
try{
for (int i=0; i<source.size();i=i+2)
result.add(source.get(i)+source.get(i+1));
}
catch (IndexOutOfBoundsException e){
}
(假设'source'是您的原始列表)
请告诉我这是否有帮助!
答案 3 :(得分:0)
我会创建新数组并将新值放入数组中。我觉得这种方式更好。要添加20到5,您只需调出第一个元素并添加到第二个元素,然后将其放入新数组中。对7 + 9做同样的事情,关键在于确保你调出正确的元素。