map 根據輸入的映射函數,將壹個集合映射為另壹個集合,比如:
輸入集合為 {1,2,3,4,5},輸入的函數為 f(x) = x^2,那麽輸出的集合就是 {1,4,9,16,25}。
reduce 就是根據輸入的歸約函數,將集合(壹般指map輸出的集合)歸約,比如上面的輸出集合是?{1,4,9,16,25},假設我們的歸約函數是 f(x,y) = x + y, 那麽 reduce 的過程就是 ?{5,9,16,25}?->?{14,16,25} ->?{30,25} -> {55}。
我們使用 Java8 來描述這個過程:
int?result?=?IntStream.range(1,?6)?//?獲得集合?{1,2,3,4,5}?.map(x?->?x?*?x)?//?映射為?{1,4,9,16,25}
?.reduce((x,?y)?->?x?+?y)?//?歸約
?.getAsInt();?//?獲得結果
System.out.println(result);
結果: