gpt4 book ai didi

java - 纯Java中两个ArrayLists的内部连接

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:01 24 4
gpt4 key购买 nike

有没有一种方法可以基于一个字段对两个不同对象的两个 ArrayList 进行内部连接?

假设我有:

ArrayList<Car>
ArrayList<Owner>

汽车将具有以下属性:Weight, Top speed, OwnerId

所有者将具有这些属性:Name, Age, Id

结果将是 ArrayList<Result>具有属性:Weight, Top speed, Id, Name, Age

我想基于一个名为 Id 的字段对这两个进行内部联接.在不使用数据库或嵌套循环的情况下,是否有任何最佳方法可以做到这一点?

最佳答案

假设你:

  • 使用 Java 8
  • 你有List<Car> carsList<Owner> owners
  • Result有一个接受 Car 的构造函数和一个 Owner

这就是您获得 List<Result> 的方式:

final Map<Integer, Owner> ownersById = owners.stream()
.collect(Collectors.toMap(k -> k.id, k -> k));
final List<Result> results = cars.stream()
.map(car -> new Result(car, ownersById.get(car.OwnerId)))
.collect(Collectors.toList());

哪个:

  • 创建一个 java.util.Map instance 其中key是owner id,value是owner instance
  • 然后遍历汽车并创建Result实例,其中包含对汽车和车主的引用,这是使用先前创建的 map 查找的

关于java - 纯Java中两个ArrayLists的内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com