2016-09-28 100 views
2

我无法弄清楚如何将数学运算应用于ArrayList的每个项目。 ArrayList将会被用户输入,所以不知道它里面有多少物品。有没有一种方法可以帮助做到这一点?如何将数学函数应用于ArrayList的每个对象

+2

Foreach循环? http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work –

+6

您可以使用stream()。map将函数应用于列表的每个元素 – puhlen

+0

这给出了使用stream.map()的例子:https://www.mkyong.com/java8/java-8-filter-a-map-examples/ – mangotang

回答

0

为@puhlen说,在Java 8中,使用流和lambda表达式

List liste = new ArrayList<>(); 
liste.stream().forEach(o->{ 
    //apply your math on o 
}); 

流为您提供了许多其他functionnalities过滤,秩序,收集...使用它,如果你是在java8

或@尼尔 - locketz在java中说,前8使用foreach循环

List<type> liste = new ArrayList<>(); 
for(type o : liste){ 
    //math on object o here 
} 
+0

其实,这段代码不会做任何事情。 – Bohemian

+1

您的流代码不执行任何操作,因为没有终止方法。也就是说,直到终止方法(例如'collect()','reduce()'等)请求下一个元素时才调用map()。没有终止方法,从字面上看没有代码会被触发。 – Bohemian

+0

对不起,我认为forEach和我写地图...编辑 – Tokazio

1

使用ListIterator - >https://docs.oracle.com/javase/7/docs/api/java /UTIL /名单Iterator.html

不同于普通IteratorListIterator将允许你存储新计算的值返回到列表

ArrayList<Integer> source = ... 

ListIterator<Integer> iter = source.listIterator(); 

while(iter.hasNext()) 
{ 
    Integer value = iter.next(); 

    Integer newValue = Integer.valueOf(value.intValue() * 2); 

    iter.set(newValue); 
} 
相关问题