Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将简单的循环转化为流?_Java - Fatal编程技术网

Java 如何将简单的循环转化为流?

Java 如何将简单的循环转化为流?,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可以做到这一

如何将简单的循环转换为流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
可以做到这一点,但这是错误的方法

正确的问题是:如何将一个数组转换为一个流,然后将这个流变异为我想要的样子

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());