当前位置: 首页 > 知识库问答 >
问题:

java 8,list以映射部门和地址列表

慕容康安
2023-03-14

我有一个类,像classe User{String department;String address;}我有一个用户列表,我能用java 8 stream/map/collect得到下面的输出吗

List<User> userList=getUserList();

Map<String,List<String>> userAddressMap=new HashMap<String,List<String>>();

for(User user : userList){

   List<String> addressList=userAddressMap.get(user.getDepartment());

   if(addressList==null){
        userAddressMap.put(user.getDepartment(),addressList);
   }

   addressList.add(user.getAddress);
}

共有1个答案

李耀
2023-03-14

在下游使用groupingby收集器和mapping收集器。

import static java.util.stream.Collectors.*;

Map<String, List<String>> userAddressMap = userList.stream()
    .collect(groupingBy(
        User::getDepartment,
        mapping(User::getAddress, toList())
    ));
 类似资料:
  • 固定映射地址和输入输出重映射 固定映射地址是一组特殊的编译时确定的地址,它们与物理地址不一定具有减 __START_KERNEL_map 的线性映射关系。每一个固定映射的地址都会映射到一个内存页,内核会像指针一样使用它们,但是绝不会修改它们的地址。这是这种地址的主要特点。就像注释所说的那样,“在编译期就获得一个常量地址,只有在引导阶段才会被设定上物理地址。”你在本书的前面部分可以看到,我们已经设定

  • 我有这个简单的Bean类: 在我的主类中,我在列表中添加了一些信息: 现在我想将图书列表转换为以下形式的地图: 因此,输出(上面的地图)如下所示: 因此,我需要按isbn作为关键字和作者作为值对条目进行分组。一个isbn可以有多个作者。 我尝试如下: 不能更改bean的格式。如果bean有字符串值而不是map,我可以这样做,但是要坚持使用map。 我已经写了传统的java 6/7方式来正确地做这件

  • 我正在学习如何在Spring Boot和Kotlin项目中使用Mapstruct。 我有一个生成的DTO(ThessaurusDTO),它有一个列表,我需要将它映射到我的模型(Vocab)上的列表中。 MapStruct不能自动映射这一点是有道理的,但我知道第一个列表将始终是size=1。我无法控制DTO模型所属的API。我在文档中发现,我可以在接口中创建和定义一个默认的方法实现,它可以松散地翻译

  • 问题内容: 我有一个带有以下签名的类: 我想要一个来自a 的键,该键将是该类的名称。我如何使用java8流按es名称对列表进行分组?所有es在名称上都是唯一的。 可以在单个流中求解,还是应该以某种方式拆分它还是采用经典解决方案? 问题答案:

  • 这是日志: 谢谢

  • 我有一个问题与转换列表对象映射字符串,列表对象。我正在寻找与一个关键名称的汽车所有组件的地图,一个值由汽车与此组件表示 我写了一个解决方案,但寻找一个更好的流解决方案。