这样一个map {root=[BaseKnowledgePointsStatisticsBo(knowledgeId=559, knowledgeName=平面图形的分类及识别, statisticScore=未作答), BaseKnowledgePointsStatisticsBo(knowledgeId=574, knowledgeName=图形的密铺, statisticScore=较差), BaseKnowledgePointsStatisticsBo(knowledgeId=585, knowledgeName=图形的拼组(剪), statisticScore=未作答)], leaf=[BaseKnowledgePointsStatisticsBo(knowledgeId=590, knowledgeName=认识图形, statisticScore=较差)]} 我想获取statisticScore=较差的所有knowledgeId 放入List<Long> knowledgeIds
时间: 2024-04-14 08:29:24 浏览: 42
您可以使用以下代码将 statisticScore=较差 的所有 knowledgeId 放入 List<Long> knowledgeIds 中:
```java
List<BaseKnowledgePointsStatisticsBo> statistics = Arrays.asList(
new BaseKnowledgePointsStatisticsBo(559, "平面图形的分类及识别", "未作答"),
new BaseKnowledgePointsStatisticsBo(574, "图形的密铺", "较差"),
new BaseKnowledgePointsStatisticsBo(585, "图形的拼组(剪)", "未作答")
);
List<Long> knowledgeIds = statistics.stream()
.filter(statistic -> statistic.getStatisticScore().equals("较差"))
.map(BaseKnowledgePointsStatisticsBo::getKnowledgeId)
.collect(Collectors.toList());
```
请注意,上述代码中的 `BaseKnowledgePointsStatisticsBo` 是一个自定义类,用于表示知识点的统计信息。您需要根据实际情况进行相应的调整。
相关问题
优化这段代码Map<String, Object> map1 = result.get(0);
如果您想要优化这段代码,可以考虑以下几点:
1. 使用具体的类型替代 Object 类型:根据您的实际需求,尽量使用具体的类型来声明变量,而不是使用 Object 类型。这样可以提高代码的可读性和类型安全性。例如,如果您知道 `result.get(0)` 返回的是一个字符串类型,可以将其声明为 `Map<String, String> map1 = result.get(0);`。
2. 添加空指针判断:在使用 `result.get(0)` 之前,最好添加空指针判断,以确保 `result` 不为 null,并且至少有一个元素。例如:`if (result != null && !result.isEmpty()) { Map<String, Object> map1 = result.get(0); }`。
3. 使用泛型来声明 Map:如果您已经确定了 map1 的键值对类型,可以使用泛型来声明 Map 的类型。例如:`Map<String, String> map1 = result.get(0);`。
综上所述,优化后的代码可能如下所示:
```java
if (result != null && !result.isEmpty()) {
Map<String, String> map1 = result.get(0);
// 继续处理 map1
}
```
请根据您的实际需求和代码上下文进行适当的优化和修改。