Java 中根据 number 匹配并添加对象到集合
import java.util.ArrayList; import java.util.List; // A类定义(修正语法+完善属性/方法) @Data class A { private String name; private String number; // 初始化listB,避免空指针 private List<B> listB = new ArrayList<>(); } // B类定义(修正语法+完善属性/方法) @Data class B { private String name; private String number; } // 主类:测试核心逻辑 public class MatchABByNumber { public static void main(String[] args) { // 1. 准备测试数据 List<A> listA = new ArrayList<>(); listA.add(new A("A1", "001")); listA.add(new A("A2", "002")); listA.add(new A("A3", "003")); // 无匹配的B listA.add(new A("A4", "002")); // 测试多个A匹配同一个B List<B> listBAll = new ArrayList<>(); listBAll.add(new B("B1", "001")); listBAll.add(new B("B2", "002")); listBAll.add(new B("B3", "002")); // 测试一个A匹配多个B listBAll.add(new B("B4", "004")); // 无匹配的A // 2. 核心逻辑:匹配number并将B添加到A的listB中(修正后的正确写法) for (A a : listA) { // 遍历所有B对象,匹配number for (B b : listBAll) { // 严格判空:避免a.getNumber()或b.getNumber()为null时抛异常 if (a.getNumber() != null && b.getNumber() != null && a.getNumber().equals(b.getNumber())) { // 正确写法:向A的listB列表中添加匹配的B对象(累加,而非覆盖) a.getListB().add(b); } } } // 3. 验证结果:打印匹配后的信息 System.out.println("=== 匹配结果 ==="); for (A a : listA) { System.out.println("A对象(name=" + a.getName() + ", number=" + a.getNumber() + ")"); System.out.println(" 匹配到的B对象数量:" + a.getListB().size()); for (B b : a.getListB()) { System.out.println(" - B(name=" + b.getName() + ", number=" + b.getNumber() + ")"); } } } }
每天多努力一点,你将会变得更好。

浙公网安备 33010602011771号