两个list 根据两个list得下标 进行循环判断 如果 下标相同 并且 其中一个list下标得值为true 那么 另一个list 得相同下标得值 放入map 用 Lambda 表示
时间: 2023-03-31 08:00:24 浏览: 73
可以回答这个问题。Lambda 表示如下:
Map<Integer, Boolean> map = IntStream.range(, list1.size())
.filter(i -> i < list2.size() && list1.get(i) && list2.get(i))
.boxed()
.collect(Collectors.toMap(i -> i, i -> list2.get(i)));
相关问题
拉姆达 两个list 根据两个list得下标 进行循环判断 如果 下标相同 并且 其中一个list下标得值为true 那么 另一个list 得相同下标得值 放入map
可以的,根据您的描述,可以使用以下代码实现:
```
Map<Integer, Boolean> map = new HashMap<>();
for (int i = ; i < list1.size(); i++) {
if (i < list2.size() && i >= && list1.get(i) && list2.get(i)) {
map.put(i, list2.get(i));
}
}
```
这段代码会遍历两个列表,如果两个列表的下标相同,并且其中一个列表下标的值为 true,那么就会将另一个列表相同下标的值放入 map 中。
两个list 根据两个list得下标 进行判断 如果 下标相同 并且 其中一个list下标得值为true 那么 另一个list 得相同下标得值 放入map 用 Lambda 表示
可以使用以下Lambda表达式实现:
Map<Integer, Boolean> map = IntStream.range(, list1.size())
.filter(i -> i < list2.size() && i < list1.size() && list1.get(i) && list2.get(i))
.boxed()
.collect(Collectors.toMap(i -> i, i -> list2.get(i)));
其中,IntStream.range(, list1.size())生成一个从到list1.size()-1的整数流,filter筛选出下标相同且其中一个list下标的值为true的元素,boxed将int转换为Integer,collect将结果收集到Map中。
阅读全文