java8写一个根据多个字段在List<B>中找出List<A>中不存在的数据,并根据条件更新后追加到List<A>中的共通方法
时间: 2024-04-30 13:22:40 浏览: 123
java中常用list方法,jdk8中的一些方法整理
假设我们有两个类A和B,它们的字段如下:
```java
class A {
private int id;
private String name;
private String address;
// 省略getter和setter方法
}
class B {
private int id;
private String name;
private String email;
private String phone;
// 省略getter和setter方法
}
```
要实现的方法是根据B对象的id、name和email三个字段,在A对象的列表中查找不存在的数据,并根据条件更新后追加到A对象的列表中。具体实现如下:
```java
public static void updateAList(List<A> aList, List<B> bList) {
for (B b : bList) {
boolean exist = false;
for (A a : aList) {
if (a.getId() == b.getId() && a.getName().equals(b.getName())) {
exist = true;
break;
}
}
if (!exist) {
A a = new A();
a.setId(b.getId());
a.setName(b.getName());
if (b.getEmail().endsWith(".com")) {
a.setAddress("USA");
} else if (b.getEmail().endsWith(".cn")) {
a.setAddress("China");
} else {
a.setAddress("Unknown");
}
aList.add(a);
}
}
}
```
首先遍历B对象的列表,对于每个B对象,都在A对象的列表中查找是否存在相同id和name的A对象。如果存在,则跳过本次循环;如果不存在,则新建一个A对象,并根据B对象的email字段更新A对象的address字段,最后将该A对象添加到A对象的列表中。注意:这里只是模拟了一个简单的更新条件,实际应用中可能需要根据具体业务场景进行更复杂的更新。
阅读全文