使用 Java 進行函數語言程式設計 - 集合
從 Java 8 開始,Java 中引入了流,並且向集合中添加了方法以獲取流。從集合中檢索到流物件後,我們可以對集合應用各種函數語言程式設計方面,如篩選、對映、歸約等。請看下面的示例 −
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FunctionTester {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
//Mapping
//get list of unique squares
List<Integer> squaresList = numbers.stream().map( i -> i*i)
.distinct().collect(Collectors.toList());
System.out.println(squaresList);
//Filering
//get list of non-empty strings
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List<String> nonEmptyStrings = strings.stream()
.filter(string -> !string.isEmpty()).collect(Collectors.toList());
System.out.println(nonEmptyStrings);
//Reducing
int sum = numbers.stream().reduce((num1, num2) -> num1 + num2).orElse(-1);
System.out.println(sum);
}
}
輸出
[9, 4, 49, 25] [abc, bc, efg, abcd, jkl] 25
廣告