【发布时间】:2019-03-24 20:23:13
【问题描述】:
我有一个List<Integer> list=Arrays.asList(640,480,520,170,320,140,60);
我需要根据下面的迭代逻辑找到给定元素的总和。
例如第一个外部迭代,如 640+480,然后 640+480+520,依此类推,直到 60。
下一次迭代从 480+520 开始,然后是 480+520 +170 等等。
示例 Java 7 程序类似于
List<Integer> list=Arrays.asList(640,480,520,170,320,140,60);
List<Integer> newListWithSum=new ArrayList<>();
for(int mainIndex=0;mainIndex<list.size();mainIndex++) {
for(int index=mainIndex;index<list.size();index++) {
int sum=0;
for(int nestedIndex=mainIndex;nestedIndex<index+1;nestedIndex++) {
sum=sum+list.get(nestedIndex);
}
newListWithSum.add(sum);
}
}
但我需要将上述逻辑更改为 Java 8 版本。请帮助/分享提示以根据以下迭代编写简化的 Java 8 逻辑求和
【问题讨论】:
-
是的,Java 7 逻辑在上面列出。我需要将它迁移到 Java 8。
-
你需要将它“迁移”到 java-8 吗?
-
我的意思是为了更好的版本,我需要将它更改为 Java 8(如果 Stream/IntStream)是更好的选择吗?
-
不,你所拥有的已经很不错了。在这种情况下,java-8 不会提高速度/可读性或其他任何东西
标签: java loops foreach java-8 java-stream