互联网的公司现在大部分都是jdk8,但是现在的项目组因为历史问题,还是jdk7,使用guava可以简化我们重复造轮子
实体对象
@Data
@Accessors(chain = true)
public class User implements Serializable {
private String name;
private int age;
private BigDecimal money = new BigDecimal("0");
}
根据name转化成map<k,v> 样例:
ImmutableMap<String, User> stringUserImmutableMap = Maps.uniqueIndex(list, new Function<User, String>() {
@Override
public String apply(User user) {
return user.getName();
}
});
这里需要注意,必须要保证list中user集合 name 是唯一的,否则会报错的。
如果name不能唯一,转化成map<k,List> 的样例 如下:
Map<String, List<User>> userMaps = Multimaps.asMap(Multimaps.index(list, new Function<User, String>() {
@Override
public String apply(User user) {
return user.getName();
}
}));
以上是guava转化的一些demo。如果是jdk8的话直接使用lamba表达式即可。