要对一个集合(比如:List)进行遍历返回一个Map对象,其中对象的一个属性作为key
引入google的guava包可以快速解决这个问题
maven依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
返回一个ImmutableMultimap
ImmutableMultimap<String, Vo> map = Multimaps.index(data, new Function<Vo, String>() {
@Override
public String apply(Vo vo) {
return vo.getField();
}
});
返回一个ImmutableMap
ImmutableMap<String, Collection<Vo>> map = Multimaps.index(data, new Function<Vo, String>() {
@Override
public String apply(Vo input) {
return input.getField();
}
}).asMap();
上面两种也可以用lambda表达式改为:
ImmutableMultimap<String, Vo> map = Multimaps.index(data, t -> t.getField());
ImmutableMap<String, Collection<Vo>> map = Multimaps
.index(data, input -> input.getField()).asMap();
返回集合里面某个属性的值的列表集合
List<String> lists = Lists.transform(data,
new Function<Vo, String>() {
@Override
public String apply(Vo input) {
return input.getNeedField();
}
});
或者
List<String> lists = Lists.transform(data, input -> input.getNeedField());