当前位置: 首页 > news >正文

商城网站 搭建免费网站制作教程

商城网站 搭建,免费网站制作教程,手机app软件下载安装,推广软件是什么意思在Java中&#xff0c;使用Stream API可以轻松地对集合进行操作&#xff0c;包括将List转换为Map或LinkedHashMap。本篇博客将演示如何利用Java Stream实现这两种转换&#xff0c;同时假设List中的元素是User对象。 1. 数据准备 List<User> list new ArrayList<>(…

在Java中,使用Stream API可以轻松地对集合进行操作,包括将List转换为Map或LinkedHashMap。本篇博客将演示如何利用Java Stream实现这两种转换,同时假设List中的元素是User对象。


1. 数据准备

List<User> list = new ArrayList<>();
list.add(new User(1, "张三", "我是张三01"));
list.add(new User(2, "张三", "我是张三02"));
list.add(new User(3, "李四", "我是李四01"));
list.add(new User(4, "李四", "我是李四02"));
list.add(new User(5, "王五", "我是王五01"));
list.add(new User(6, "王五", "我是王五02"));

2. List转Map(无序-默认)

List转Map有两种Map格式,分别是 Map<String, User>Map<String, List>,下面我将分别展示:

2.1 List转Map<String, User>

转换成Map<String, User>我们需要使用到Collectors.toMap方法:

//通过名字进行分组,如果名字重复的话只取第一个:List转Map<String, User>
Map<String, User> map01 = list.stream().collect(Collectors.toMap(User::getName, Function.identity(), (u1, u2) -> u1));
System.out.println(map01);

执行结果:

{
李四=User(id=3, name=李四, note=我是李四01), 
张三=User(id=1, name=张三, note=我是张三01), 
王五=User(id=5, name=王五, note=我是王五01)
}

2.2 List转Map<String, List<User>>

转换成Map<String, List<User>>我们需要使用到Collectors.groupingBy方法:

//通过名字进行分组,如果名字重复的话就分组成List:List转Map<String, List<User>>
Map<String, List<User>> map02 = list.stream().collect(Collectors.groupingBy(User::getName));
System.out.println(map02);

执行结果:

{
李四=[User(id=3, name=李四, note=我是李四01), User(id=4, name=李四, note=我是李四02)], 
张三=[User(id=1, name=张三, note=我是张三01), User(id=2, name=张三, note=我是张三02)], 
王五=[User(id=5, name=王五, note=我是王五01), User(id=6, name=王五, note=我是王五02)]
}

我们可以看到:map中打印出来的执行结果并没有按照List中添加的顺序打印的

3. List转LinkedHashMap(有序)

List转LinkedHashMap也有两种Map格式,分别是 LinkedHashMap<String, User>LinkedHashMap<String, List>,下面我将分别展示:

3.1 List转LinkedHashMap<String, User>

转换成LinkedHashMap<String, User>我们需要使用到Collectors.toMap方法:

//通过名字进行分组,如果名字重复的话只取第一个:List转LinkedHashMap<String, User>
Map<String, User> map03 = list.stream().collect(Collectors.toMap(User::getName, Function.identity(), (u1, u2) -> u1, LinkedHashMap::new));
System.out.println(map03);

执行结果:

{
张三=User(id=1, name=张三, note=我是张三01), 
李四=User(id=3, name=李四, note=我是李四01), 
王五=User(id=5, name=王五, note=我是王五01)
}

3.2 List转LinkedHashMap<String, List<User>>

转换成LinkedHashMap<String, List<User>>我们需要使用到Collectors.groupingBy方法:

//通过名字进行分组,如果名字重复的话就分组成List:List转LinkedHashMap<String, List<User>>
Map<String, List<User>> map04 = list.stream().collect(Collectors.groupingBy(User::getName, LinkedHashMap::new, Collectors.toList()));
System.out.println(map04);

执行结果:

{
张三=[User(id=1, name=张三, note=我是张三01), User(id=2, name=张三, note=我是张三02)], 
李四=[User(id=3, name=李四, note=我是李四01), User(id=4, name=李四, note=我是李四02)], 
王五=[User(id=5, name=王五, note=我是王五01), User(id=6, name=王五, note=我是王五02)]
}

我们可以看到:map中打印出来的执行结果是按照List中添加的顺序打印的

4. 总结

在List转Map的过程中:
如果我们对Map中的顺序没要求,我们可以通过stream流将List转换为默认的HMap即可
如果我们对Map中的顺序有要求,我们可以通过stream流将List转换为LinkedHashMap才行

5. 全部代码

public static void test1() {List<User> list = new ArrayList<>();list.add(new User(1, "张三", "我是张三01"));list.add(new User(2, "张三", "我是张三02"));list.add(new User(3, "李四", "我是李四01"));list.add(new User(4, "李四", "我是李四02"));list.add(new User(5, "王五", "我是王五01"));list.add(new User(6, "王五", "我是王五02"));//通过名字进行分组,如果名字重复的话只取第一个:List转Map<String, User>Map<String, User> map01 = list.stream().collect(Collectors.toMap(User::getName, Function.identity(), (u1, u2) -> u1));System.out.println(map01);//通过名字进行分组,如果名字重复的话就分组成List:List转Map<String, List<User>>Map<String, List<User>> map02 = list.stream().collect(Collectors.groupingBy(User::getName));System.out.println(map02);//通过名字进行分组,如果名字重复的话只取第一个:List转LinkedHashMap<String, User>Map<String, User> map03 = list.stream().collect(Collectors.toMap(User::getName, Function.identity(), (u1, u2) -> u1, LinkedHashMap::new));System.out.println(map03);//通过名字进行分组,如果名字重复的话就分组成List:List转LinkedHashMap<String, List<User>>Map<String, List<User>> map04 = list.stream().collect(Collectors.groupingBy(User::getName, LinkedHashMap::new, Collectors.toList()));System.out.println(map04);
}
public class User {private Integer id;private String name;private String note;
}
http://www.ds6.com.cn/news/108833.html

相关文章:

  • 做网站 用什么兼容网络seo啥意思
  • 在哪个网站可以做图文合并关键词推广方式
  • 南部 网站 建设市场营销策划案的范文
  • wordpress斌果主题抖音seo怎么做
  • 做网站只开发手机端可不可以品牌策划推广方案
  • 青岛做企业网站的公司网站优化一年多少钱
  • 编写 网站 语言百度网站关键词排名查询
  • 可商用的图片素材网站如何在百度发布广告信息
  • 镇江 网站建设郑州seo询搜点网络效果佳
  • 延吉最好的网站建设公司东莞头条最新新闻
  • 加强网站建设的制度网页设计模板免费网站
  • 小企业网站 优帮云杭州排名优化公司电话
  • 网站制作定制图长沙网络营销顾问
  • 室内设计师怎么找seo引擎优化培训
  • 房山区网站建设华与华营销策划公司
  • 网络运营推广怎么做网站seo整站优化
  • 官方网站建设的意义自己怎么优化我网站关键词
  • 还有其他做问卷的网站吗seo网站外包公司
  • 天津品牌网站建设公司站长之家排行榜
  • 现在还用dw做网站设计么seo1短视频网页入口营销
  • 找人做网站域名怎么过户大数据营销软件
  • 网站合作推广方案云和数据培训机构怎么样
  • 济宁房产网站建设站长工具友链检测
  • 山东省住房和城乡建设厅电话号码成都seo
  • 梁山网站建设企业培训课程价格
  • 利用网站空间做代理2022年列入传销组织最新骗法
  • 建网站的英文企业宣传片制作
  • 聊城做网站的公司案例重大军事新闻
  • 做网站从哪里找货源推广资源网
  • 微信公众号模板哪里找seo 0xu