1. 程式人生 > >一種快速對集合遍歷返回方法

一種快速對集合遍歷返回方法

要對一個集合(比如: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());