package com.firefly.utils.lang; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; public abstract class CollectionTools { public static <F,S,T> Map<F, S> transform(Collection<T> from, MultiReturnFunction<F, S, T> function) { if(from == null || from.size() == 0) return null; Map<F, S> map = new HashMap<F, S>(); for(T t : from) { Pair<F, S> pair = function.apply(t); map.put(pair.first, pair.second); } return map; } public static <F, T> List<F> transform(Collection<T> from, SingleReturnFunction<F, T> function) { if(from == null || from.size() == 0) return null; List<F> collection = new ArrayList<F>(); for(T t : from) { collection.add(function.apply(t)); } return collection; } }