【发布时间】:2019-09-15 04:33:00
【问题描述】:
我可以在使用 Iterable.forEach(Consumer) 迭代元素时更改元素吗?或者在 Consumer.accept(E) 中我只能读取底层 Iterable 的元素,但不能更改它们?
如果我可以更改它们,正确的语法是什么?
ArrayDeque d = new ArrayDeque<Integer>();
d.add(1);
d.add(2);
d.add(3);
d.add(4);
Consumer<Integer> cons = (e)->{e = e*10;}; // compiles!
d.forEach(cons);
System.out.println(d); // 1 2 3 4 not 10 20 30 40
【问题讨论】: