List<TestOne> oneList = new ArrayList<TestOne>();
List<TestTwo> twoList = new ArrayList<TestTwo>();
oneList 赋值到 twoList .oneList属性内,根据oneList 中 id 与twoList 的 id2 判断
for (TestTwo testTwo : twoList) {
testTwo.setTestList(
oneList.stream().filter(one1 -> one1.getId() == testTwo.getId2()).collect(Collectors.toList()));
}
处理调整:
List<TestOne> oneList = new ArrayList<TestOne>();
List<TestTwo> twoList = new ArrayList<TestTwo>();
// Create a map of id2 to TestOne elements for faster lookup
Map<Integer, List<TestOne>> id2ToTestOneMap = oneList.stream()
.collect(Collectors.groupingBy(TestOne::getId2));
// Set the testList for each element in twoList using the map
for (TestTwo testTwo : twoList) {
int id2 = testTwo.getId2();
testTwo.setTestList(id2ToTestOneMap.getOrDefault(id2, Collections.emptyList()));
}
如果更好的解决方案,请大神指点。