Java 如何将简单的循环转化为流?
如何将简单的循环转换为流APIJava 如何将简单的循环转化为流?,java,Java,如何将简单的循环转换为流API default List<FoodItem> pickMeals(long[] itemsId){ for (int i = 0; i < itemsId.length; i++) { pickedMeals.add(getFoodItemById((int) itemsId[i])); } return pickedMeals; } Stream.of可以做到这一
default List<FoodItem> pickMeals(long[] itemsId){
for (int i = 0; i < itemsId.length; i++) {
pickedMeals.add(getFoodItemById((int) itemsId[i]));
}
return pickedMeals;
}
Stream.of
可以做到这一点,但这是错误的方法
正确的问题是:如何将一个数组转换为一个流,然后将这个流变异为我想要的样子
Arrays.stream(itemsId)
.mapToObj(itemId -> getFoodItemById((int) itemId))
.collect(Collectors.toList());
如果要返回
流
,请关闭收集。您可能不应该这样做-列表在这里非常好。为什么需要将其转换为流API?只是为了学习目的?是的,我们只能使用stream
,no来表示对这个愚蠢的问题感到抱歉。IDE添加了try/catch,是否正确?我应该从函数返回什么而不是pickedMeals?您应该返回整个表达式,它是List类型的。这是一条线(好吧,坚持在前面返回)。如果出现这些问题,您需要学习Java101课程。您的IDE不应该添加try/catch,除非getFoodItemById引发选中的异常。如果它真的扔掉了,忘了溪流吧,不要在这里使用它们。你为什么要这么做?你一无所获。列一张清单,填上,然后退回。
Arrays.stream(itemsId)
.mapToObj(itemId -> getFoodItemById((int) itemId))
.collect(Collectors.toList());