我有下面的pojo
Class Employee () {
Private name;
Private id;
}
此employee类用于从mybatis orm获取对象列表(list)。
mybatis将输出作为列表返回,因为mybatis不支持将Map作为返回类型
我必须把它转换成地图
我尝试了下面的方法,但没有成功,因为它需要getName()和getId()方法
Map<String, String> map = list.stream().collect(Collectors.toMap(Employee::getId, Employee:getName));
请告知是否有一种方法可以在不修改员工pojo的情况下使用stream实现。
注意:我知道我们可以使用ofr或for each循环来实现。
应该是这样的
Map<Integer, String> result1=list.stream().collect(
Collectors.toMap(Employee::getId, Employee::getName));
你们应该经常发布公式化的问题,但由于你们是新手,我们就忽略这一部分吧。我在这里假设你的名字和ID都是string类型。
下面的代码非常适合您。
Map<String, String> map = list.stream().filter(Objects::nonNull).collect(Collectors.toMap(Employee::getId, Employee::getName));
如果你也想保持秩序,请选择下面提到的。
Map<String, String> map = list.stream().filter(Objects::nonNull).collect(Collectors.toMap(Employee::getId, Employee::getName, (oldValue, newValue) -> oldValue,LinkedHashMap::new));
如果没有,如果您添加您收到的错误消息,那将是非常好的,因此将能够详细帮助您。
我有一个问题与转换列表对象映射字符串,列表对象。我正在寻找与一个关键名称的汽车所有组件的地图,一个值由汽车与此组件表示 我写了一个解决方案,但寻找一个更好的流解决方案。
我是Mapstruct的新手。我试图将列表转换为地图,我在网上搜索了很多,我有一些解决方案,比如它还没有在mapstruct中实现。如果有人能提供一些替代解决方案,我将很高兴。所有我希望转换映射如下: 现在是否可以使用MapStruct来实现?
问题内容: 我想使用Java 8技巧在一行中执行以下操作。 给定此对象定义: 和a ,我想得到a ,它是第一个列表中所有s对象的列表- 顺序相同。 我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。 有人可以为这种转换建议一个lambda或另一种线吗? 问题答案: 这应该可以解决问题: 也就是说
我可以在Java中使用循环来实现这一点,但我认为在Java8中应该有一个一行程序lambda来实现这一点。我无法在网上找到解决方案。也许我没有使用正确的搜索词。 有人能为这个转换提出一个lambda或另一个一行程序吗?
我有一张这样的地图<代码>地图 我使用了对象映射器,但它不工作,因为映射在我的结构中包含另一个映射。
我有映射键作为字符串和值作为列表。列表可以有10个唯一值。我需要转换这个映射键为整数和值为列表。示例如下: 输入: 2:“钥匙-1”,“钥匙-2” 3:“钥匙-1”、“钥匙-2”、“钥匙-3” 4:“钥匙-1”、“钥匙-2”、“钥匙-3”