文档章节

使用JDK8的lambda方式把List转成Map

学渣要逆袭
 学渣要逆袭
发布于 2017/05/31 15:16
字数 167
阅读 34
收藏 0
JDK

1、创建一个实体类(学生类)
 

public class Student {
	private Integer id;
	private String name;
	private Integer age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
}

2、创建一个测试类
 

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class TestDemo {
     public static void main(String[] args) {

                Student student1 = new Student();
		student1.setId(110);
		student1.setName("李明");
		student1.setAge(23);
		
		Student student2 = new Student();
		student2.setName("明浩");
		student2.setId(119);
		student2.setAge(24);
		
		List<Student> list = Lists.newArrayList();
		list.add(student1);
		list.add(student2);

                Map<Integer, Student> studentMap = list.stream().collect(Collectors.toMap(Student:: getId, (k) -> k));
		
		System.out.println("根据学号查找学生:"+studentMap.get(110).getName());
     }
}

 

© 著作权归作者所有

共有 人打赏支持
学渣要逆袭
粉丝 0
博文 37
码字总数 9342
作品 0
海淀
后端工程师
JDK1.8 Stream之toMap和groupingBy全参数的使用

现在有一个商品地址对象的集合List productAddresses,该集合中productId和addressId是一对多的关系 1 @Data 2 @AllArgsConstructor 3 class ProductAddress { 4 private int productId; 5 ......

疯狂阿贾克斯
08/07
0
0
屌炸天,JDK8的排序大法!!

首先祝大家端午节快乐! 今天总结了下JDK中排序的方法,包括JDK8中强大的lambda表达式及函数式接口运用,不废话,请看下面示例。 public class Test { public static void main(String[] arg...

java技术栈
2017/08/13
0
0
使用JDK8新特性重构你的代码

lambda 表达式 当一个接口只有一个方法的时候都可以使用lambda 表达式代替 这种称为函数接口可以用 @FunctionalInterface 修饰 lambda 表达式多种形式 使用lambda表达式实现设计模式 这里我们...

12叔
2016/04/15
477
0
Java8-如何构建一个Stream

Stream的创建方式有很多种,除了最常见的集合创建,还有其他几种方式。 List转Stream List继承自Collection接口,而Collection提供了stream()方法。 数组转stream 对于数组,Arrays提供了str...

ryan-miao
04/04
0
0
深入浅出 Java 8 Lambda 表达式

摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等。本文系 OneAPM 工程师编译整理。 Java 是一流的面向对象语言,除了部分简单数据类型,J...

OneAPM蓝海讯通
2015/11/02
101
0

没有更多内容

加载失败,请刷新页面

加载更多

sourcetree 离线免注册登录安装教程

Sourcetree是一个优秀的git可视化管理工具,深受开发者喜爱Sourcetree官网,但是在安装时需要谷歌账户登录,需要翻qiang才可以,此一点一直被人们所诟病。今天本教程就为大家提供离线免登陆安...

QQZZFT
13分钟前
0
0
使用 PostgreSQL 解决一个实际的统计分析问题

使用 PostgreSQL 解决一个实际的统计分析问题作者:老农民(刘启华)Email: 46715422@qq.com 之前有个朋友扔给我一个奇葩需求,他们公司之前做了一批问卷调查,全部都是统一格式的excel...

新疆老农民
16分钟前
0
0
TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {    name?: string;    age?...

durban
31分钟前
0
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.an......

郑加威
31分钟前
0
0
RxJS的另外四种实现方式(后记)—— 同时实现管道和链式编程

目录 RxJS的另外四种实现方式(序) RxJS的另外四种实现方式(一)——代码最小的库 RxJS的另外四种实现方式(二)——代码最小的库(续) RxJS的另外四种实现方式(三)——性能最高的库 Rx...

一个灰
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部