拉姆达 两个list 根据两个list得下标 进行循环判断 如果 下标相同 并且 其中一个list下标得值为true 那么 另一个list 得相同下标得值 放入map
时间: 2023-03-31 17:00:21 浏览: 152
可以的,根据您的描述,可以使用以下代码实现:
```
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根据条件给属性赋值
可以使用 Lambda 表达式和 Stream API 来实现。例如,假设有一个 List<Person>,其中 Person 类有一个属性 age,我们想将所有年龄大于 18 的人的 isAdult 属性设置为 true,可以这样写:
list.stream()
.filter(person -> person.getAge() > 18)
.forEach(person -> person.setIsAdult(true));
其中,filter() 方法用于过滤出年龄大于 18 的人,forEach() 方法用于遍历符合条件的人并设置 isAdult 属性。
拉姆达 处理list 根据 if 转换map
可以使用 Java 8 的 Stream API 中的 map() 方法和 filter() 方法来实现。具体代码如下:
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "grape");
Map<String, Integer> map = list.stream()
.filter(s -> s.length() > 5)
.collect(Collectors.toMap(Function.identity(), String::length));
这段代码的作用是将 list 中长度大于 5 的字符串转换成一个 Map,其中字符串作为 key,字符串长度作为 value。
阅读全文