Java 汇总ArrayList中的所有条目<;整数>;

Java 汇总ArrayList中的所有条目<;整数>;,java,arraylist,sum,Java,Arraylist,Sum,我试图在我的ArrayList中添加所有元素,但这似乎是一个相当大的挑战。尝试了不同的方法和功能,但都不起作用。这是我的密码: for (Kids ki : GroupOfKids) { try { DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); Date date = new Date(); String currentDat

我试图在我的ArrayList中添加所有元素,但这似乎是一个相当大的挑战。尝试了不同的方法和功能,但都不起作用。这是我的密码:

    for (Kids ki : GroupOfKids) {

        try {
            DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
            Date date = new Date();
            String currentDate= dateFormat.format(date);
            Date datum;
            datum = dateFormat.parse(currentDate);


            Date bornDate;
            bornDate= ki.getbornDate();

            int days = daysBetween(bornDate, datum);               
            //code above works fine..from here it's getting confusing

            List<Integer> allKids;
            allKids= new ArrayList<>();
            allKids.add(days);

            int total;
        total = allKids.stream().mapToInt(Integer::intValue).sum();
    System.out.print(total);


        } catch (Exception e) {
            e.printStackTrace();
        }

    }
for(Kids-ki:GroupOfKids){
试一试{
DateFormat DateFormat=新的简化格式(“dd/MM/yyyy”);
日期=新日期();
字符串currentDate=dateFormat.format(日期);
日期基准;
datum=dateFormat.parse(当前日期);
出生日期;
bornDate=ki.getbornDate();
整数天=两天之间的天数(基准日);
//上面的代码很好用。从这里开始,它变得很混乱
列出所有孩子;
allKids=newarraylist();
添加(天);
整数合计;
total=allKids.stream().mapToInt(Integer::intValue.sum();
系统输出打印(总计);
}捕获(例外e){
e、 printStackTrace();
}
}
我在计算这些“孩子”几天的年龄。我得到一个int并将结果放入ArrayList。我无法得到一个结果。我要么单独得到每个孩子的年龄,要么两个结果都得到,比如2个

例如:

1号孩子已经1234天大了

孩子2的年龄是3422天

结果:12343422

我预计1234+3422=4656

如果有更多条目,则所有条目的总和加在一起


有人能告诉我哪里出错了吗?

我看到的第一件事是使用旧的
java.util.Date
而不是新的
java.time.LocalDate
;然后使用
Period
类来确定天数(如果您发布了
的话,可能会在这段时间内修改您的
天数)。像

然后,您的流应该用于将每个
孩子映射到他们的年龄和总和;像

int total = allKids.stream().mapToInt(k -> getDaysOld(k.getbornDate())).sum();

假设你在一个错误的地方做算术

您应该在循环之前定义和初始化列表,并在循环结束后进行求和

List<Integer> allKids;
allKids = new ArrayList<>();

for( ... ) {
    .
    .
    .
    allKids.add(days);
    .
    .
    .
}

int total;
total = allKids.stream().mapToInt(Integer::intValue).sum();
System.out.print(total);
列出所有孩子;
allKids=newarraylist();
对于(…){
.
.
.
添加(天);
.
.
.
}
整数合计;
total=allKids.stream().mapToInt(Integer::intValue.sum();
系统输出打印(总计);

使用for循环外部的
AllKids
total
AllKids
(区分大小写)将只保存一个
Integer
值。如果没有两个名为
AllKids
的变量,可能会有所帮助。从外语翻译时只需输入一个拼写错误,这样更容易理解。如果我在for循环之外使用它,我就无法访问列表allKids;allKids=newarraylist();添加(天);我实际上在为每个孩子增加天数?是的!就这样!多谢各位。我不使用Java,所以我很难理解我在哪里犯了错误。谢谢你,伙计!:)
List<Integer> allKids;
allKids = new ArrayList<>();

for( ... ) {
    .
    .
    .
    allKids.add(days);
    .
    .
    .
}

int total;
total = allKids.stream().mapToInt(Integer::intValue).sum();
System.out.print(total);