我需要创建一个列表列表,其中每个列表的长度为 5 或列表中值的总和 <= 10(以先发生者为准)。到目前为止,我有:
int currentSize = 0;
Boolean size = false;
Boolean length = false;
for (int s : keyListMax) {
if(currentSize >= 10) {
sizeReached = true;
}
if(currentList.size() >= 5) {
lengthReached = true;
}
if(!sizeReached && !lengthReached) {
currentSize += currentList.stream().mapToInt(Integer::intValue).sum();
currentList.add(s);
}
else {
result.add(0, currentList);
currentList.clear();
currentSize = 0;
}
}
System.out.println("Result is: " + result);
但结果是空列表的列表(可能是因为我正在使用 clear() ?)。另外,如何使用 Java 8 实现这一点?