转自:https://blog.csdn.net/weixin_42201566/article/details/81513769

Lists.transform:能够轻松的从一种类型的list转换为另一种类型的list。

使用场景:

1、把一个List<Map<String,String>> 中的  所有map对应某个key的value值取出来 返回一个新的list

Map<String,String> map = Maps.newHashMap();
map.put("1","test1");
map.put("2","test2");
Map<String,String> map2 = Maps.newHashMap();
map2.put("1","test3");
map2.put("4","test2");
List<Map<String,String>> list2=Lists.newArrayList();
list2.add(map);
list2.add(map2);
List<String> list3=Lists.transform(list2,s->s.get("1"));
list3.forEach(s -> System.out.println(s));

2、通常可以使用Lists.transform把对象list中的某个属性取出来  返回一个新的list:如下代码

public static void main(String[] args) {

List<Result> resultList=Lists.newArrayList(new Result(1,"test1"),new Result(2,"test2"),new Result(3,"test3"));
//将一个list转化为另外一个list
List<String> nameList=Lists.transform(resultList,tuple -> tuple.getNameStr()); nameList.forEach(s -> System.out.println(s));
System.out.println("============");
resultList.forEach(result -> {
result.setNameStr("reset");
});
nameList.forEach(s -> System.out.println(s)); } class Result{
private Integer id;
private String nameStr; public Result(Integer id, String nameStr) {
this.id = id;
this.nameStr = nameStr;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getNameStr() {
return nameStr;
} public void setNameStr(String nameStr) {
this.nameStr = nameStr;
} }
  •  

结果:

test1
test2
test3
============
reset
reset
reset

结论:

当Lists.transform()处理的list的值发生改变,那么Lists.transform()处理的结果也会发生改变

Lists.transform的使用的更多相关文章

  1. com.google.common.collect.Lists#transform使用注意

    /** * Returns a list that applies {@code function} to each element of {@code * fromList}. The return ...

  2. guava Lists.transform使用

    作用:将一个List中的实体类转化为另一个List中的实体类. 稍微方便一点.例如:将List<Student>转化为List<StudentVo> Student: pack ...

  3. Guava Lists.transform踩坑小记<转>

    1.问题提出 1.前段时间在项目中用到Lists.transform返回的List,在对该list修改后发现修改并没有反映在结果里,研究源码后发现问题还挺大.下面通过单步调试的结果来查看Guava L ...

  4. Transformer-view java实体 转换视图 Lists.transform

    自: https://blog.csdn.net/mnmlist/article/details/53870520 meta_ws 连接: https://github.com/kse-music/d ...

  5. 在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合

    但是在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合,在循环的时候,会去调用apply 生成一个PurchaseOrde ...

  6. Lists

    List类主要提供了对List类的子类构造以及操作的静态方法.在类中支持构造ArrayList.LinkedList以及newCopyOnWriteArrayList对象的方法.其中提供了以下构造Ar ...

  7. [置顶] Guava学习之Lists

    Lists类主要提供了对List类的子类构造以及操作的静态方法.在Lists类中支持构造ArrayList.LinkedList以及newCopyOnWriteArrayList对象的方法.其中提供了 ...

  8. guava学习--Function、Predicate

    Function用于同步转换. Predicate用于过滤. import java.util.Collection; import java.util.Iterator; import java.u ...

  9. guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用

    guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection ...

随机推荐

  1. Anagram 由颠倒字母顺序而构成的字

    2018-07-15 19:23:08 Valid Anagram 问题描述: 问题描述: 可以使用map来记录各个字符出现的个数,在O(n)的时间复杂度内完成,当然也可以使用排序算法在O(nlogn ...

  2. NHibernate 映射关系

    基本映射关系如下: NHibernate类型 .NET类型 Database类型 备注 AnsiChar System.Char DbType.AnsiStringFixedLength - 1 ch ...

  3. HTML表单格式化

    HTML表单格式化 一.说明 用table布局 二.效果 三.代码 <!DOCTYPE html> <html> <head> <title>Form. ...

  4. rsync+inotify文件同步

    rsync+inotify文件同步 在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份 ...

  5. 常用HTTP contentType与后端处理方式

    常用HTTP contentType与后端处理方式 1.Content-Type:application/x-www-form-urlencoded; charset=UTF-8 前端export.j ...

  6. JS-Object(3) 继承(prototype方式, 类方式); javascript6的知识(部分)

    原型方式的继承 创建child object classes(constructors) , 子类如何从父类中继承特性. 原型链继承prototypal inheritance (ruby中的继承也是 ...

  7. 河南省第十一届ACM大学生程序设计竞赛

    nyoj-1365-山区修路 内存限制:128MB 时间限制:3000ms 特判: No通过数:4 提交数:4 难度:3 题目描述: SNJ位于HB省西部一片群峰耸立的高大山地,横亘于A江.B水之间, ...

  8. PHP:第二章——PHP中的流程控制语句

    if语句的集中形式 <?php /*if(条件) 语句; if(条件){语句块} if(条件){语句或语句块}else{语句或语句块} if(条件){语句或语句块}elseif(条件){语句或语 ...

  9. Response.ContentType都有哪些?

    Response.ContentType 名称 类型ai application/postscriptaif audio/x-aiffaifc audio/x-aiffaiff audio/x-aif ...

  10. docker小demo

    http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html