精华内容
下载资源
问答
  • User 转SchoolResponse List<User> usrLst = userMapper.selectList(); List<SchoolResponse> schoolLst = usrLst.stream().map(tmp->... SchoolResponse school = new SchoolResponse();...

    User 转 SchoolResponse

    List<User> usrLst = userMapper.selectList();
    
    List<SchoolResponse> schoolLst = usrLst.stream().map(tmp->{
                SchoolResponse school = new SchoolResponse();
                school.setSchool(tmp.getSchool());
                school.setGradeClass(tmp.getGradeClass());
                return school;
            }).collect(Collectors.toList());

     

    展开全文
  • 在Java 8中,我们可以使用带有lambda表达式的Stream对象的map()方法将对象转换为另一种类型。 map()方法是流对象中的中间操作,因此我们需要一种终端方法来完成流。语法Streammap(FunctionsuperT,?extendsR>...

    在Java 8中,我们可以使用带有lambda表达式的Stream对象的map()方法将对象转换为另一种类型。 map()方法是流对象中的中间操作,因此我们需要一种终端方法来完成流。

    语法Stream  map(Function super T,? extends R> mapper)

    示例import java.util.*;

    import java.util.stream.*;

    public class EmployeeInformationTest {

    public static void main(String args[]) {

    List employees = Arrays.asList(

    new Employee("Jai"),

    new Employee("Adithya"),

    new Employee("Raja"));

    List names = employees.stream()

    .map(s -> s.getEmployeeName())//Lambda表达式

    .collect(Collectors.toList());

    System.out.println(names);

    }

    }

    //Employee类

    class Employee {

    private String empName;

    private String empDesignation;

    public Employee(String empName) {

    this.empName = empName;

    }

    public String getEmployeeName() {

    return empName;

    }

    public void setEmployeeName(String empName) {

    this.empName = empName;

    }

    public String getEmployeeDesignation() {

    return empDesignation;

    }

    public void setEmployeeDesignation(String empDesignation) {

    this.empDesignation = empDesignation;

    }

    }

    输出结果[Jai, Adithya, Raja]

    展开全文
  • 碰到很多时候在做列表查询时,需要将DAO层传过来的对象进行处理和转换。那么如果我们碰到需要在换换对象的时候,可以考虑封装Converter来简化业务代码,其中我们可以用BeauUtils和lambda表达式快速完成,特别是...

    释放双眼,带上耳机,听听看~!

    a8dd751c434885fa7cf3f94173c70c77.png

    练手JAVA中,写个笔记。碰到很多时候在做列表查询时,需要将DAO层传过来的对象进行处理和转换。那么如果我们碰到需要在换换对象的时候,可以考虑封装Converter来简化业务代码,其中我们可以用BeauUtils和lambda表达式快速完成,特别是lambda,功能强大。

    场景描述

    @Override

    public Page findList(String buyerOpenid, Pageable pageable) {

    Page orderMasterPage = orderMasterRepository.findByBuyerOpenid(buyerOpenid, pageable);

    orderMasterPage.getContent();

    Page orderDTOPage = new PageImpl(这里是需要传的参数);//报红了,需要传参

    return orderDTOPage;

    }

    首先咱们接收了orderMasterRepository的Page对象,一顿操作,然后我们在实例化PageImpl时,报了类型错误。

    那么我们瞅瞅PageImpl源码,看看需要什么参数。

    public PageImpl(List content, Pageable pageable, long total) {

    super(content, pageable);

    this.total = (Long)pageable.toOptional().filter((it) -> {

    return !content.isEmpty();

    }).filter((it) -> {

    return it.getOffset() + (long)it.getPageSize() > total;

    }).map((it) -> {

    return it.getOffset() + (long)content.size();

    }).orElse(total);

    }

    OK,需要List、Pageable、total。所以开始写个Convert封装,直接贴个示例代码吧。

    新建package:converter,新建OrderMaster2OrderDTOConverter。

    public class OrderMaster2OrderDTOConverter {

    public static OrderDTO convert(OrderMaster orderMaster) {

    OrderDTO orderDTO = new OrderDTO();

    BeanUtils.copyProperties(orderMaster, orderDTO);

    return orderDTO;

    }

    public static List convert(List orderMasterList) {

    return orderMasterList.stream().map(e ->

    convert(e)

    )

    .collect(Collectors.toList());

    }

    }

    展开全文
  • list转mapjava8 lambda将List转换为Map比较简单,但是 有坑:List sellOutList = Lists.newArrayList();Boy one = new Boy();one.setId(34343);sellOutList.add(one);Boy two = new Boy();two.setId(34343);...

    list转map

    java8 lambda将List转换为Map比较简单,但是 有坑:

    List sellOutList = Lists.newArrayList();

    Boy one = new Boy();

    one.setId(34343);

    sellOutList.add(one);

    Boy two = new Boy();

    two.setId(34343);

    sellOutList.add(two);

    Map res = sellOutList.stream().collect(Collectors.toMap(Boy::getId, Function.identity()));

    System.out.println(res.entrySet());

    public static class Boy{

    int id;

    int age;

    public int getId() {

    return id;

    }

    public void setId(int id) {

    this.id = id;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    }

    注意这里使用的是:Function.identity();

    这里运行会报错,报错信息:

    java.lang.IllegalStateException: Duplicate key com.serviceTest.ServiceTest$Boy@6c6017b9

    at java.util.stream.Collectors.lambda$throwingMerger$106(Collectors.java:133)

    at java.util.stream.Collectors$$Lambda$4/38625764.apply(Unknown Source)

    at java.util.HashMap.merge(HashMap.java:1245)

    at java.util.stream.Collectors.lambda$toMap$164(Collectors.java:1320)

    at java.util.stream.Collectors$$Lambda$6/940448009.accept(Unknown Source)

    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)

    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)

    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)

    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)

    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)

    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:483)

    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)

    at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:182)

    at org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:171)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:483)

    at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:194)

    at org.testng.internal.Invoker.invokeMethod(Invoker.java:707)

    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)

    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)

    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)

    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)

    at org.testng.TestRunner.privateRun(TestRunner.java:767)

    at org.testng.TestRunner.run(TestRunner.java:617)

    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)

    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)

    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)

    at org.testng.SuiteRunner.run(SuiteRunner.java:240)

    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)

    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)

    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)

    at org.testng.TestNG.run(TestNG.java:1031)

    at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)

    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

    Function.identity() 换成 c->c,(k1, k2)->k2)

    正确的写法:

    List sellOutList = Lists.newArrayList();

    Boy one = new Boy();

    one.setId(34343);

    sellOutList.add(one);

    Boy two = new Boy();

    two.setId(34343);

    sellOutList.add(two);

    Map res = sellOutList.stream().collect(Collectors.toMap(Boy::getId, c->c,(k1, k2)->k2));

    System.out.println(res.entrySet());

    这样就不会报错了。

    参考博客

    展开全文
  • 主要介绍了Java lambda list转换map时,把多个参数拼接作为key操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 我从DB获取管理器列表,现在我必须将此列表的每个对象填充到另一个对象,即employee,并将其作为列表(employeeList)返回到其调用函数. Manager和Employee都包含相同的字段.我必须使用流使用lambda表达式实现此目的....
  • 下方是使用Lambda表达式和引用运算符后简化的实现方式。 public class PrinterDemo { public static void main(String[] args) { PrintString p = new PrintString(); usePrinter(new Printer() { @Override .
  • Lambda表达式转换List整理

    千次阅读 2019-09-17 10:31:14
    1、获取对象objectList中某一个字段list List<String> skuCodeList = objectList.stream().map(Object::getSkuCode).collect(Collectors.toList()); 2、获取对象objectList中某一个字段值求和 Integer ...
  • Java中的集合转换(lambda表达式)

    千次阅读 2021-02-26 15:00:02
    在Java应用中进行集合对象间的转换是非常常见的事情,有时候在处理某些任务时选择一种好的数据结构往往会起到事半功倍的作用,因此熟悉每种数据结构并知道其特点对于程序员来说是非常重要的,而只知道这些是不够的,...
  • 1.List<...中有两个字段值的转换)注(第一个取值为key,第二个为value) Map map = list.stream().collect(Collectors.toMap(s->s.get("route_code"), s -> s.get("COUNT"))); 2.通过对象...
  • lambda表达式 对对象属性排序

    千次阅读 2018-03-12 17:21:27
    //将集合按照SellerLeaveDto的createTime 属性倒排 (使用reversed) Function&lt;SellerLeaveDto, Date&gt; function = SellerLeaveDto::getCreateDate; Comparator&lt;SellerLeaveDto&...
  • 对象实体类如下: @Getter @Setter public class Detail implements Serializable { /** * @Fields serialVersionUID:序列化ID */ private static final long serialVersionUID = 1L; /** */ private ...
  • Lambda表达式中将List中对象的某个对象的属性转化为List 今天在开发中遇到了一个需求,需要将返回值的某个属性单独捞出来返回成List对象,再进行判断。 1、lambda的foreach用法: //将panelSnList的进行for循环,...
  • 试试这种方法:static List> listSplitter(List incoming,int size) {// add validation if neededreturn incoming.stream().collect(Collector.of(ArrayList::new,(accumulator,item) ->...
  • 这里使用的是Kotlin语言来讲解Lambda,和Java中的Lambda是一样的,之前看Java Lambda的书也有讲到这个点,原理是一样的,这里记录一下。 在做Android开发的时候,假设有三个TextView(显示文本的控件),需要设置同...
  • Map<Long, List<String>> map = list.stream().collect(Collectors.groupingBy(JavaBean::getName, Collectors.mapping(JavaBean::getId, Collectors.toList())));
  • 需求描述 ...现在有这样一个需求,有一个用户对象集合,需要从里面获取用户Id转换成一个新的集合。 @Data public class User { /** * 用户Id */ private Integer id; /** * 姓名 */ ...
  • 在项目中,采用code first时建立的模型对象不能直接用于数据传输,需要从新根据需求建立Dto对象 为什么需要建立Dto对象呢? DTO即数据传输对象。之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,...
  • 利用java8新特性,可以用简洁高效的代码来实现一些数据处理。 网上有很多DEMO,但大多数都是实体类泛型。但我们开发常用的是List<Map<Sting, Object>>。
  • lambda/函数对象/函数指针(函数名)均可以在这个情境中传递信息。在这种情境下对比一下三者的使用: 1.传入函数指针(函数名) 例如,count_if ()函数的第三个参数是一个一元谓词。 若判数一个数能否被3整除,则...
  • 例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只...
  • //所属部门自己部门信息 List&lt;Map&lt;String,Object&gt;&gt; tbUserDepartment = tbGoodsInfoMapper.getUserDepartment(tbGoodsInfo.getUserId());... System.out.println(tbUserDepartment);...
  • 常用Lambda集合取值及类型转换

    千次阅读 2020-08-13 14:49:22
    常用Lambda取值及类型转换 #nodeList 改为Map集合 Map<String, A> nodeNameMap = nodeList.stream().collect(Collectors.toMap(A::getNodeNo, Function.identity(), (k1, k2) -> k1)); #获取集合中一列值...
  • C++ lambda表达式与函数对象 lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。但是从本质上来讲,lambda表达式只是一种语法糖...
  • List使用Lambda转换元素

    千次阅读 2018-03-27 15:43:22
    //转换list对象 userList.clear(); userList.add(new User(3, "Tom3")); userList.add(new User(2, "Tom2")); userList.add(new User(1, "Tom1")); List<UserQuery> userQuerylist = new ArrayList(); user...
  • 1. Lambda常用在快捷方便的创建匿名内部类上。 需要注意的是Lambda创建匿名内部类要求该接口或者类只能有一个方法。     遍历元素的应用:   package day09; import java.util.ArrayList; import java....
  • C++ lambda表达式与函数对象 lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。但是从本质上来讲,lambda表达式只是一种语法糖...
  • Map<String, QuotaSort> map = new HashMap<String, QuotaSort>(); map.put("1", new QuotaSort("1", "11", 1)); map.put("4", new QuotaSort("4", "44", 4)); map.put("2", new QuotaSort("2", ...
  • java中给对象的List集合过滤的几种方法前言一、lambda表达式的去重方式二、Stream API中的collect去重方法2.读入数据总结 前言 JDK8的对象去重方式的总结,不包含常规的去重方式,例如:List、Set(HashSet)、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,741
精华内容 36,296
关键字:

lambda对象转换