泰安市网站建设_网站建设公司_ASP.NET_seo优化
2025/12/30 6:41:16 网站建设 项目流程
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")); // 无匹配的BlistA.add(new A("A4", "002")); // 测试多个A匹配同一个BList<B> listBAll = new ArrayList<>();listBAll.add(new B("B1", "001"));listBAll.add(new B("B2", "002"));listBAll.add(new B("B3", "002")); // 测试一个A匹配多个BlistBAll.add(new B("B4", "004")); // 无匹配的A// 2. 核心逻辑:匹配number并将B添加到A的listB中(修正后的正确写法)for (A a : listA) {// 遍历所有B对象,匹配numberfor (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() + ")");}}}
}

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询