java - 将列表中的对象变量匹配和设置到不同的对象列表
问题描述
试图找出将列表中的对象变量与列表中不同类型的对象变量匹配的最佳方法。找到匹配项后,我想将第一个 Object 中的不同变量设置为与之匹配的另一个 Object 变量。解释这一点的最好方法是这样的:
我有一个List<Cat> cats
和 cat 有变量 id、size、breed、name、vetId 和 vetName。
我也有一个List<Vet> vets
,兽医有变量 id、地址、电话和姓名。
列表cats
有一个 vetId 但 vetName 为空,我需要以某种方式从vets
列表中添加名称。
我需要一种快速有效的方法来做到这一点。我对新的 Java 8 东西不太熟练,但我相信会有一种快速的方法来使用它。
解决方案
假设你有两个列表List<Cat> cats
和List<Vet> vets
您可以使用 Stream API 实现您所需要的:
// Build map of (vetId -> vetName) pairs
Map<Long, String> vetMap = vets.stream().collect(toMap(Vet::getId, Vet::getName));
// Update cats with proper vet names
cats.forEach(cat -> cat.setVetName(vetMap.get(cat.getVetId())));
推荐阅读
- firebase - “DocumentChange”类型上不存在属性“entryDate”
- javascript - 如何将 HTML 元素分配给 JavaScript 全局变量?
- flutter - 颤振编程
- python - Python 帮助:如何获取输入文件值并在脚本中传递它们的值
- java - Java 从 JSON 文件导入 JTable
- javascript - 如何向 Cloud Firestore 发送非持久值?
- ios - 合并:如何取消 flatMap 的发布者
- git - 删除 git 历史记录中的副本/分叉
- javascript - 缩放时覆盖相机源
- wordpress - 联系表格 7 印地文文本未显示在电子邮件中