最近总结下,项目中使用的lambada的案例
- 首先list转化为map
使用一个叫collections.toMap的方法
里面有三个参数,第一就是转化为map后的key是什么,第二:转化map中value放什么,第三个,就是,merge,就是如果key相同如何处置,在下面程序中(a,b)->a,代表如果相同我就获取进行跳过,如果(a,b)->b,就是进行覆盖,第四个参数说明生产一个什么样子的map,这里是一个linkedHashMap就是有序的
public class Test1 {
public static void main(String[] args) {
List<User> list =Lists.newArrayList(new User("a","1"),
new User("a","2"),
new User("b","b1")
);
LinkedHashMap<String,User> map= list.stream().collect(Collectors.toMap(User::getName, user -> user,
(a,b)->a,
LinkedHashMap::new));
//{"a":{"name":"a","value":"1"},"b":{"name":"b","value":"b1"}}
System.out.println(JSONObject.toJSON(map));
}
}
class User{
private String name;
private String value;
public User(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}