我有两个int数组,
我想得到这两个数组的笛卡尔积。
当我使用
产生的输出为
a = {10,20,30}
和{1,2,3}
。我想得到这两个数组的笛卡尔积。
当我使用
Integer
的List
时,逻辑可以正常工作: List<Integer> intList = Arrays.asList(10,20,30);
List<Integer> intList1 = Arrays.asList(1,2,3);
intList.stream().flatMap(i -> intList1.stream().map(j -> new int[]{i,j})).collect(Collectors.toList());
然而,当我使用int[]
时,我遇到了编译错误。
错误:(16,79)java:不兼容的类型:lambda表达式中的错误返回类型 没有类型变量U的实例存在,以便java.util.stream.Stream符合java.util.stream.IntStream
int[] intArray = {10,20,30};
int[] intArray1 = {1,2,3};
Arrays.stream(intArray).flatMap(i -> Arrays.stream(intArray1).mapToObj(j -> new int[]{j,i})).collect(Collectors.toList());
请帮助我理解这里有什么问题。
附言:
Arrays.stream(intArray).mapToObj(i -> new int[]{i,i+1}).collect(Collectors.toList());
产生的输出为
{(10,11),(20,21),(30,31)}
。