java List<HrOrgUnit> hrOrgUnitList 转换为id为key,HrOrgUnit为value的map
时间: 2024-02-12 07:09:13 浏览: 71
可以使用Java 8的Stream API来实现将List<HrOrgUnit>转换为以id为key,HrOrgUnit为value的Map。具体代码如下所示:
```
Map<Long, HrOrgUnit> hrOrgUnitMap = hrOrgUnitList.stream()
.collect(Collectors.toMap(HrOrgUnit::getId, Function.identity()));
```
这里使用了`Collectors.toMap()`方法,第一个参数传入了获取key的Lambda表达式,即`HrOrgUnit::getId`,第二个参数传入了获取value的Lambda表达式,即`Function.identity()`,它表示直接返回元素本身作为value。最终返回的是一个Map<Long, HrOrgUnit>类型的对象,其中Long是id的类型。
相关问题
java对象OrgUnitAssign包含字段fatherCode List<OrgUnitAssign> hrUnitAssignList 转换为key为fatherCode, value为List<OrgUnitAssign> newList List<OrgUnitAssign> newList中所有OrgUnitAssign的fatherCode相等
可以使用Java 8的stream和Collectors来实现这个转换:
```
Map<String, List<OrgUnitAssign>> map = hrUnitAssignList.stream()
.collect(Collectors.groupingBy(OrgUnitAssign::getFatherCode));
```
这里使用了`Collectors.groupingBy`方法,将List分组成Map,第一个参数为分组的key,通过`getFatherCode`方法获取;第二个参数为分组的value,直接使用`OrgUnitAssign`对象。最终得到的`map`的类型是`Map<String, List<OrgUnitAssign>>`,其中key为`fatherCode`,value为所有`fatherCode`相等的`OrgUnitAssign`对象组成的List。
Map<key,value> 根据 List<key> 生成List<value> java
可以使用Java8的Stream API来实现该功能,具体代码如下:
```java
List<Key> keys = Arrays.asList(key1, key2, key3); // 假设已经有 List<Key>
Map<Key, Value> map = new HashMap<>(); // 假设已经有 Map<Key, Value>
List<Value> values = keys.stream()
.map(map::get)
.collect(Collectors.toList());
```
上述代码中,首先将输入的 `List<Key>` 转换为一个 Stream,然后使用 `map()` 方法将每个 Key 映射为其对应的 Value,最后使用 `collect()` 方法将所有 Value 收集到一个新的 List 中。其中,`map::get` 表示将每个 Key 作为参数传递给 `map.get()` 方法,使用 `::` 符号可以将方法引用转换为函数式接口。
阅读全文