一種快速對集合遍歷返回方法
阿新 • • 發佈:2019-02-01
要對一個集合(比如: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());