当前位置: 首页 > 面试题库 >

使用Java 8迭代和过滤两个列表

宋晋
2023-03-14
问题内容

我想迭代两个列表并获取新的过滤列表,该列表将具有第二个列表中不存在的值。有人可以帮忙吗?

我有两个列表-一个是字符串列表,另一个是MyClass对象列表。

List<String> list1;
List<MyClass> list2;

MyClass {

    MyClass(String val)
    {
        this.str = val;
    }

     String str;
     ...
     ...
}

我想根据->检查第二个列表中的值不存在的元素(abc)过滤字符串列表list1

List<String> list1 = Arrays.asList("abc", "xyz", "lmn");

List<MyClass> list2 = new ArrayList<MyClass>();

MyClass obj = new MyClass("abc");
list2.add(obj);
obj = new MyClass("xyz");
list2.add(obj);

现在我想要新的过滤列表->将具有值=>“ lmn”。即在list2其元素中不存在的值list1


问题答案:

这可以通过以下方式实现…

 List<String> unavailable = list1.stream()
                            .filter(e -> !list2.contains(e))
                            .collect(Collectors.toList());


 类似资料:
  • 我有两份清单: 列表1: Object1(name1, id1) 列表2: Object2(name2, id2) 给定list1的大小与list2相同 我想迭代list2,如果list2的name2不为null,则更新list1的name1。 以下是使用旧java的代码: 用java实现这一点的最佳方法是什么。util。流动

  • 我正在寻找帮助,我正在尝试迭代具有订单()的产品,该产品还包含

  • 我想知道,如何在Java8中使用流API迭代多级列表 根据Java8,我应该做如下的操作 我想要流利地做这件事(使用内部迭代)。任何解释都会很感激。

  • 我想在HashMap中搜索重复项。目前这是我的HashMap:

  • 我有一个映射,它包含日期作为键和(另一个字符串作为键和列表作为值的映射)作为值。,我想填充另一个将String作为键和double作为值的映射。FlexiServer的内容包括 因此,基本上,我想首先迭代外部映射以获得内部映射,然后迭代内部映射以获得FlexiServers列表,并填充新的映射,其中服务器号作为键,数量列表作为值。我如何使用Java8流来实现这一点呢? 我尝试使用for循环,但我希