java - 在Java中不可能从这些元素的一个数组中创建一个元素数组流
问题描述
给定片段代码:
Integer [] arrayIntegers_1 = {100,5,80,9,65,200};
Integer [] arrayIntegers_2 = {30,99,800};
Integer [] arrayIntegers_3 = {166,520,7};
Stream<Integer[]> streamOfArraysOfIntegers=Stream.of(arrayIntegers_1,arrayIntegers_2,arrayIntegers_3);
//OK, it is a Stream of arrays of Integers
Stream<Integer[]> streamOfArraysOfIntegers_1=Stream.of(arrayIntegers_1);
//Compilation fail in this line, Java cannot make a Stream of arrays of Integers or others objects from one (1) array
Stream<Integer> streamOfOfIntegers=Stream.of(arrayIntegers_1);
//From one (1) array Java makes a Stream of elements in this array, in this case it is a Stream of Integers
在编译失败的情况下,我等待 Java 用一个整数数组创建一个整数数组流,但不是。在下一行中,我们可以看到 Java 从一个数组创建一个整数流。
然而,集合并没有发生这种情况,我们如何在下一个片段代码中看到,最后一行,
ArrayList<Integer> listOfIntegers=new ArrayList<>();
listOfIntegers.add(300); listOfIntegers.add(5); listOfIntegers.add(98); listOfIntegers.add(1); listOfIntegers.add(7);
ArrayList<Integer> listOfIntegers_1=new ArrayList<>();
listOfIntegers_1.add(999); listOfIntegers_1.add(3); listOfIntegers_1.add(85); listOfIntegers_1.add(561); listOfIntegers_1.add(42);
Stream<ArrayList<Integer>> streamOfListofIntegers=Stream.of(listOfIntegers,listOfIntegers_1);
Stream<ArrayList<Integer>> streamOfListofIntegers_1=Stream.of(listOfIntegers); //Stream of ArrayList of Integers with one (1) ArrayList of Integers
我会感谢任何评论。
解决方案
如果你想强制Stream.of
构建一个Stream<Integer[]>
,你可以使用:
Stream<Integer[]> streamOfArraysOfIntegers_1 =
Stream.<Integer[]>of(arrayIntegers_1);
原因是它Stream.of
需要一个 var-arg,这意味着当给定单个数组时,它会生成该数组的各个元素的流。
如果您实际上将多个数组传递给它,则不需要这样做:
Stream<Integer[]> streamOfArraysOfIntegers_1 =
Stream.of(arrayIntegers_1, arrayIntegers_2);
将此行为与集合的行为进行比较是不相关的。这会影响数组,因为它们与 var-args 有关系(您可以将T[]
作为参数传递给具有T...
作为参数的方法);收藏品并非如此。
推荐阅读
- python - 尝试导入 keras.metrics 的模块错误
- typescript - Next.js 项目部署因 typescript 类型而失败
- mysql - 如何将具有列表状态的列表购物车插入 JSON 和颤动?
- javascript - Javascript 未反映在 Django 项目中
- php - antonioribeiro/countries 如何直接从国家选择中获取货币符号?
- javascript - Fullcalendar dateclick 和 eventclick 事件未触发
- visual-studio-code - 如何查看 Flow 错误中的引用?
- android - In-App Review API 如何在用户评价应用时获得回调
- python - 检查路径是否存在于网络中
- .net - 将日期时间导出到 Excel:仅 1900 年 1 月和 1900 年 2 月的一天不同问题