//根据主问题编码将对应的子问题添加进问题表 List<ContOptHealQueEntity> sidQuestionList = contOptHealQueMapper.selectList( new LambdaQueryWrapper<ContOptHealQueEntity>() .in(ContOptHealQueEntity::getQuestionNo, contOptWelQuerelEntityList.stream() .map(ContOptWelQuerelEntity::getSid) .collect(Collectors.toList())) );解析每个方法的作用,变成我能看懂的方法,用for i循环的形式
时间: 2023-07-16 12:16:30 浏览: 79
C# List用法详解,可作为C#开发参考。
首先,这段代码的作用是根据主问题编码获取相应的子问题列表。
现在,我们来解释每行代码的作用:
```
List<ContOptHealQueEntity> sidQuestionList = contOptHealQueMapper.selectList(
```
定义一个名为 `sidQuestionList` 的列表,用于存储所获取的子问题列表。`contOptHealQueMapper.selectList` 是从数据库中获取数据的方法。
```
new LambdaQueryWrapper<ContOptHealQueEntity>()
```
创建一个 LambdaQueryWrapper 对象,用于构建查询条件。
```
.in(ContOptHealQueEntity::getQuestionNo, contOptWelQuerelEntityList.stream()
.map(ContOptWelQuerelEntity::getSid)
.collect(Collectors.toList()))
```
使用 `in` 方法,查询 `ContOptHealQueEntity` 表中的 `questionNo` 字段,该字段的值在 `contOptWelQuerelEntityList` 列表中的 `sid` 字段值集合中。`map` 方法用于从 `contOptWelQuerelEntityList` 列表中提取每个元素的 `sid` 值,并将其转换为列表。`Collectors.toList()` 方法用于将提取的值转换为列表类型。
最后,用 `selectList` 方法执行查询,并将结果存储在 `sidQuestionList` 列表中。
现在,我们将上述代码用 `for` 循环重写:
```
List<ContOptHealQueEntity> sidQuestionList = new ArrayList<>();
List<String> sidList = new ArrayList<>();
for (ContOptWelQuerelEntity contOptWelQuerelEntity : contOptWelQuerelEntityList) {
sidList.add(contOptWelQuerelEntity.getSid());
}
for (int i = 0; i < sidList.size(); i++) {
String sid = sidList.get(i);
LambdaQueryWrapper<ContOptHealQueEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ContOptHealQueEntity::getQuestionNo, sid);
List<ContOptHealQueEntity> questionList = contOptHealQueMapper.selectList(queryWrapper);
sidQuestionList.addAll(questionList);
}
```
首先,我们创建了一个空的 `sidQuestionList` 列表和一个空的 `sidList` 列表。
然后,我们使用 `for` 循环遍历 `contOptWelQuerelEntityList` 列表,将每个元素的 `sid` 字段值添加到 `sidList` 列表中。
接着,我们使用另一个 `for` 循环遍历 `sidList` 列表,查询 `ContOptHealQueEntity` 表中的 `questionNo` 字段,该字段的值等于当前元素的 `sid` 值。我们使用 `LambdaQueryWrapper` 对象构建查询条件,并使用 `contOptHealQueMapper.selectList` 方法执行查询,并将结果添加到 `sidQuestionList` 列表中。
最后,我们得到了与原始代码相同的结果。
阅读全文