여러 원본 개체의 여러 값을 컬렉션으로 추출하려는 경우가 있습니다. 구아바의 변형으로이 작업을 수행하려고했지만 문제가 발생하여 수동으로 '플랫 화'해야하는 콜렉션 모음을 되 찾을 수 있습니다. 플랫 컬렉션에서 직접 결과를 다시 얻을 수있는 좋은 방법이 있습니까?구아바에서 1 대 다수로 변환
private static final Function<Target, Collection<Integer>> EXTRACT_FUNCTION = new Function<SourceObject, Collection<Integer>>() {
@Override
public Collection<Integer> apply(SourceObject o) {
// extract and return a collection of integers from o
return Lists.newArrayList(..);
}
};
Collection<SourceObject> sourceObjects = ...
Collection<Collection<Integer>>> nestedResults = transform(sourceObjects, EXTRACT_FUNCTION);
// Now I have to manually flatten the results by looping and doing addAll over the nestedResults..
// Can this be avoided?
Collection<Integer> results = flattenNestedResults(nestedResults);
올바른 내용입니다. Iterables.concat은 flattenNestedResults 함수를 대체합니다. –