我有List
个对象中的Customer
个。我想逐一遍遍清单和淡淡的订单。
我尝试了每种方法,但在这里必须创建新列表并在其中添加值。
class Customer{
long id;
int orders;
//getters setters constructor
}
List<Customer> empList=Arrays.asList(new Customer(1,10),new Customer(2,,20));
List<Customer> empList1=new ArrayList<>();
empList.forEach(e->{
e.orders++; //updating orders
empList1.add(e);
});
有更好的方法吗?我尝试使用流,但它仅映射订单
empList.stream().map(e->{e.orders++;}).collect(Collectors.toList());
答案 0 :(得分:3)
您可以使用peek
empList.stream().peek(e->{e.orders++;}).collect(Collectors.toList());
正如“ Vasanth Senthamarai Kannan”所正确指出的那样,由于您不需要修改列表的结构,因此您不需要第二个列表,
empList.forEach(e->e.orders++);
答案 1 :(得分:1)
您可以使用replaceAll()
来定义incrementOrder()
之类的方法
empList.replaceAll(Customer::incrementOrder);
public Customer incrementOrder(){
this.orders+=1;
return this;
}