当前位置: 首页 > 知识库问答 >
问题:

如何使用流从两个列表或数组乘法中查找元素对

马清野
2023-03-14

我有两个数字列表,我想找到所有可能的数字对。例如,给定列表[1,2,3][3,4]时,结果应为:

[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]

我知道我可以使用for循环来完成这件事,但是有没有更简洁的方法来使用Java8流来完成这件事呢?

我尝试了以下操作,但由于我得到的是list > 而不是list 而错过了一些内容。

public static void main(String[] args) {
    List<Integer> list1 = Arrays.asList(1, 2, 3);
    List<Integer> list2 = Arrays.asList(3, 4);
    List<int[]> pairs = list1.stream()
                             .map(i -> list2.stream()
                                            .map(j -> new int[]{i, j}))
                             .collect(Collectors.toList());
    pairs.forEach(i -> {
        System.out.println("{" + i[0] + "," + i[1] + "}");
    });
}

共有1个答案

卢锋
2023-03-14

使用flatMap()方法而不是map(),它将把流合并为一个。参考:map()和flatMap()之间的差异和flatMap()示例

 类似资料:
  • 问题内容: 我有一个清单“ a” 我需要找到一个特定数字的所有元组。说1 我怎么做? 问题答案: 如果只希望第一个数字匹配,则可以这样操作: 如果您仅搜索其中包含1的元组:

  • 在这里您可以看到我带给UIAutomatorViewer的元素。 这是我发现的主要因素。 [![在此处输入图像说明][1]][1]

  • 我有对象列表。 每个项目有1个arrayList Item.propertylist.key.equals(“test”)作为新列表。

  • 对于上述代码,我得到的输出为: 但我的期望是得到。 你能指导我实现这一点吗?

  • 我有以下几门课: 我有一个物品清单。我想遍历列表并找到具有特定ID的实例。我试着通过溪流来做。

  • 问题内容: 我有一个清单: 如何将每个元素乘以5?输出应为: 问题答案: 您可以只使用列表理解: 请注意,列表理解通常是执行循环的更有效方法: 作为替代方案,以下是使用流行的Pandas软件包的解决方案: 或者,如果您只想要列表: