stream
public static void main(String[] args) { List<GoodsInfor> list = new ArrayList<>(); List<GoodsInfor> list2 = new ArrayList<>(); GoodsInfor p = new GoodsInfor(); p.setGoodsId(1); p.setEachGoodsFare(1D); GoodsInfor p2 = new GoodsInfor(); p2.setGoodsId(2); p2.setEachGoodsFare(2D); GoodsInfor p3 = new GoodsInfor(); p3.setGoodsId(3); p3.setEachGoodsFare(3D); list.add(p); list.add(p2); list.add(p3); GoodsInfor p4 = new GoodsInfor(); p4.setGoodsId(1); p4.setEachGoodsFare(0D); GoodsInfor p5 = new GoodsInfor(); p5.setGoodsId(2); p5.setEachGoodsFare(0D); GoodsInfor p6 = new GoodsInfor(); p6.setGoodsId(3); p6.setEachGoodsFare(0D); GoodsInfor p7 = new GoodsInfor(); p7.setGoodsId(4); p7.setEachGoodsFare(0D); list2.add(p4); list2.add(p5); list2.add(p6); list2.add(p7); // list2.stream().flatMap(x -> list.stream() // .map(y -> {x.setEachGoodsFare(y.getEachGoodsFare()); // return x; // }) // ).collect(Collectors.toList()).forEach(m->System.out.println(m)); list2.stream().filter((x) -> list.stream().anyMatch((y)-> { if (x.getGoodsId() == y.getGoodsId()) { x.setEachGoodsFare(y.getEachGoodsFare()); return true; } return false; }) ).collect(Collectors.toList()).forEach(System.out::println); }