Java 汇总ArrayList中的所有条目<;整数>;
我试图在我的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
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);