lambda表达式对比两个list值相同就赋值给对方
时间: 2023-03-29 21:01:48 浏览: 120
lambda表达式可以用于比较两个list的值是否相同,并将它们互换。具体实现方法如下:
list1, list2 = [1, 2, 3], [3, 2, 1]
list1, list2 = (lambda x, y: (y, x)) (list1, list2) if list1 == list2 else (list1, list2)
这个lambda表达式接受两个参数x和y,如果x和y的值相同,则返回(y, x),否则返回(list1, list2)。最后,将返回值赋值给list1和list2。
相关问题
java 用lambda表达式怎么遍历list<DTO> 并且筛选出dto中多个字段值为空对象并重新赋值
您好,对于您的问题,可以使用Java 8的Stream API和Lambda表达式来遍历list<DTO>并筛选出dto中多个字段值为空对象并重新赋值。具体实现可以参考以下代码:
```
list.stream().filter(dto -> dto.getField1() == null || dto.getField2() == null)
.forEach(dto -> {
if (dto.getField1() == null) {
dto.setField1(newValue1);
}
if (dto.getField2() == null) {
dto.setField2(newValue2);
}
});
```
其中,list为需要遍历的DTO列表,getField1和getField2为DTO中的两个字段,newValue1和newValue2为需要重新赋值的新值。使用filter方法筛选出字段值为空的DTO,然后使用forEach方法对每个符合条件的DTO进行重新赋值操作。
希望能够帮到您!
java8将部分字段相同的两个list互相赋值
这是一个技术问题,可以回答。在java8中,可以使用stream和lambda表达式来实现将部分字段相同的两个list互相赋值。具体代码实现可以参考以下示例:
```
List<Person> list1 = Arrays.asList(
new Person("John", 28, "M"),
new Person("Jane", 23, "F"),
new Person("Tom", 31, "M")
);
List<Person> list2 = Arrays.asList(
new Person("Mary", 25, "F"),
new Person("Peter", 29, "M"),
new Person("Sally", 33, "F")
);
//将list2中与list1中name相同的元素的age和gender赋值给list1
list1.stream()
.filter(p1 -> list2.stream().anyMatch(p2 -> p2.getName().equals(p1.getName())))
.forEach(p1 -> list2.stream()
.filter(p2 -> p2.getName().equals(p1.getName()))
.findFirst()
.ifPresent(p2 -> {
p1.setAge(p2.getAge());
p1.setGender(p2.getGender());
}));
```
其中Person类定义如下:
```
class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
//getter和setter方法省略
}
```
通过以上代码,可以实现将list2中与list1中name相同的元素的age和gender赋值给list1。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)