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

在Java中使用stream检查list是否只有特定的元素排列

归鸿朗
2023-03-14

我正在尝试用流来解决这个问题,我查了一下,如果有人遇到过这个,但找不到这个。因此,我有一个包含三个元素的列表,我们称之为list1,另一个列表是list2,它可以包含不同的元素,也可以包含与list1重复的项。

我想达到的目标:-

    null

对于2-我可以使用set,将list2转换为set,然后看看list1是否包含了所有的set。

但我想知道我是否可以在这里使用stream!

例如

清单1(1,2,3)和清单2(1,1,2,2,4)-返回false

我希望这能让你明白一点

共有1个答案

邹坚壁
2023-03-14
  public static <T> boolean func(List<T> list1, List<T> list2) {
    return list2.stream()
        .distinct()
        .map(list1::contains)
        .reduce(0,
            (result, current) -> result < 0 ? -1 : (current ? result + 1 : -1),
            (a, b) -> a < 0 || b < 0 ? -1 : a + b) == 2;
  }

但建议您不要对如此复杂的逻辑使用流。

 类似资料:
  • 我正在制作一个地铁餐厅的复制品,在那里你会收到按特定顺序的订单,并检查顺序是否有效,以及菜单上是否有配料。 正确的顺序是:1个面包,0到1个肉,1个奶酪,1到3个额外的,1到3个酱汁。 这意味着一份订单至少可以有4种配料(面包、奶酪、1种额外配料、1种调味汁),最多可以有9种配料(面包、肉、奶酪、3种额外配料、3种调味汁)。 我的问题是,是否有比我更优化/更智能的方法来验证每种成分? 代码: 注1

  • 我有这个ArrayList- ,一个整数被添加到移动[1]。然后将该数组添加到ArrayList中,然后重复该过程,这样我就有了一个“移动”列表。 我的问题是,我不确定如何在ArrayList(“树”)中找到仅在元素中包含特定值的数组(“移动”)——因为元素每次都是唯一的。 然后,我想制作一个所有匹配项的数组/列表。例如,一个数组,它包含与3的值相匹配的所有移动值。因此,我会留下一个数组/2D数组

  • 问题内容: 我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。 现在,我有这样的东西: 但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西? 问题答案: 有几种选择。我推荐这些。 1.创建方法或Web驱动程序扩展。 2.计算元素,如果有1个或更多元素,则获取它。 那你可以检查

  • 问题内容: 我正在python中使用该库,并且希望保持队列条目唯一。 因此,我想在添加到队列之前检查队列中是否没有“某物”,本质上是这样的函数,它可以在队列库中工作: 还是我应该使用其他库/方法来实现这一目标? 问题答案: 标准类不能被迭代或检查。 但是,它被构建为可扩展。 首先,如果你看一下源(这是从文档的链接),有钩的方法,,并且可以覆盖改变实现。查看主类下面的子类,您可以看到它们是如何做到的

  • 我的问题是:我如何使用来进行检查,而不是使用或者是否还有其他我可以使用的东西?

  • 我是的新手,需要检查元素是否可以在中单击,因为在和上都传递。 我尝试使用以下代码,但不起作用: