Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在迭代器中对getter方法中的值求和?_Java_Oop_Iterator_Sum - Fatal编程技术网

Java 如何在迭代器中对getter方法中的值求和?

Java 如何在迭代器中对getter方法中的值求和?,java,oop,iterator,sum,Java,Oop,Iterator,Sum,我试图使用迭代器对getter方法(从ArrayList中绘制值)中的数值求和 有关职能: public void overallTotal() { Iterator<Customer> customers = model.getCustomerIterator(); while (customers.hasNext()) { Customer customer = customers.next(); int sum = 0;

我试图使用迭代器对getter方法(从ArrayList中绘制值)中的数值求和

有关职能:

public void overallTotal()
{
    Iterator<Customer> customers = model.getCustomerIterator();
    while (customers.hasNext())
    {
        Customer customer = customers.next();
        int sum = 0;
        sum = customer.getTotalForAllOrders() + sum;
        System.out.println(sum);
    }
}
订单:

public class Order
{
  private ArrayList<LineItem> lineItems;

  public Order()
  {
    lineItems = new ArrayList<LineItem>();
  }

  public int getTotal()
  {
    int total = 0;
    for (LineItem item : lineItems)
    {
      total += item.getSubTotal();
    }
    return total;
  }
}
公共类秩序
{
私有ArrayList行项目;
公共秩序()
{
lineItems=newarraylist();
}
公共int getTotal()
{
int-total=0;
用于(行项目:行项目)
{
合计+=项目。getSubTotal();
}
返回总数;
}
}
迭代器:

public Iterator<Customer> getCustomerIterator()
{
    return customers.iterator();
}
公共迭代器getCustomerInterator()
{
return customers.iterator();
}

如果我正确理解您的问题,您只需在while循环外初始化sum,您只需在作用域中断后重新说明变量。

如果我正确理解您的问题,您只需在while循环外初始化sum,你只是在作用域中断后重新定义变量。

如果你有流,你可以做
long sum=model.getCustomerStream().flatMapToLong(c->c.stream().mapToLong(o->o.getSubTotal()).sum();
如果你有流,你可以做
long sum=model.getCustomerStream().flatMapToLong(c->.stream().maptolog(o->.getSubTotal()).sum();
public Iterator<Customer> getCustomerIterator()
{
    return customers.iterator();
}