相关疑难解决方法(0)

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

我想迭代两个列表并获得新的过滤列表,其中的值将不存在于第二个列表中.有人可以帮忙吗?

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

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

MyClass {

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

     String str;
     ...
     ...
}
Run Code Online (Sandbox Code Playgroud)

我希望基于以下方式过滤字符串列表 - >检查其值不存在的元素(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);
Run Code Online (Sandbox Code Playgroud)

现在我想要新的过滤列表 - >将有值=>"lmn".即不存在list2于其元素所在的值list1.

java filter

12
推荐指数
4
解决办法
10万
查看次数

java 8中两个列表对象的交集

java 8中的两个列表对象的交集.有人能告诉我我做错了什么吗?

List<Student> originalStudent = new ArrayList<>();
List<Student> newStudent = new ArrayList<>();

List<Student> intersectListStudent = new LinkedList<>()

originalStudent.add(new Student("William", "Tyndale",1));
originalStudent.add(new Student("Jonathan", "Edwards",2));
originalStudent.add(new Student("Martin", "Luther"),3);

newStudent.add(new Student("Jonathan", "Edwards",2));
newStudent.add(new Student("James", "Tyndale",4));
newStudent.add(new Student("Roger", "Moore",5));


originalStudent.forEach(n ->
        newStudent.stream()
                .filter(db -> !n.getName().equals(db.getName()) &&
                        !n.getLastName().equals(db.getLastName()))
                    .forEach(student-> intersectListStudent .add(student)));
Run Code Online (Sandbox Code Playgroud)

java arraylist intersect java-8 java-stream

2
推荐指数
1
解决办法
1849
查看次数

标签 统计

java ×2

arraylist ×1

filter ×1

intersect ×1

java-8 ×1

java-stream ×1