【发布时间】:2022-12-11 17:26:07
【问题描述】:
我有一个子列表“l”的大列表“L”(全部包含在“L”中),其中每个子列表“l”都包含一定数量的项目。
我想得到的是存储在“L”的所有子列表中但不使用循环的项目总数。
也许我的问题会更清楚地表述如下。
带有“L”的大列表由所有小子列表“li”组成。 不使用循环我想知道的是:
这里有一个例子:
我有一个大列表Farm,它由不同的子列表组成,即农场的动物。
Farm
Cow
Horse
Chicken
...
列表Farm 的每个元素也是一个列表。例如,子列表Cow 是农场所有奶牛的列表(它们的名字、体重、年龄……)。
例如,Cow 列表如下所示:
Cow
Marguerite: 4 years - 200 kg
Toto: 2 years - 150 kg
Biggy: 5 years - 500 kg
...
我想知道该农场中的动物总数(也就是“大列表”的所有子列表中包含的元素总数),但不使用循环。
谁能帮帮我。我试图通过使用流来做到这一点,但直到现在我还没有成功。
【问题讨论】:
-
您可以在将项目添加到子列表时对其进行计数。
-
流仍然打开),就像一个循环
-
你试过什么
Stream解决方案?提示:了解flatMap。 -
不幸的是,我不知道没有循环的答案,但我认为人们投票的原因是因为你的英语似乎不太好,有些句子非常混乱
-
@X0-user-0X - 只需使用递归方法,例如:
public int get2DListElementsCount(List<List<String>> my2DList, int index, int sum) { if (index > (my2DList.size() - 1)) { return 0; } sum += my2DList.get(index).size(); index++; if (index < my2DList.size()) { sum = get2DListElementsCount(my2DList, index, sum); } return sum; }。
标签: java list java-stream