一、forEach方法
Java8引入了forEach方法,可以用來遍歷集合中的元素。其實現如下:
list.forEach(element -> {
//對列表元素做一些操作
});
這個方法將會遍歷列表中的所有元素,然後對每個元素執行指定的操作。下面是一個實例:
List<String> list = Arrays.asList("apple", "banana", "orange", "cherry");
list.forEach(fruit -> { System.out.println(fruit); });
這個例子中,我們定義了一個字符串列表,並使用forEach方法遍歷每個元素並輸出。output:
apple
banana
orange
cherry
二、map方法
Java8還引入了map方法。它可以用來遍歷一組元素,並將它們轉換為新元素的集合。其實現如下:
List<T> newList = oldList.stream().map(element -> {
//將每個元素從舊列表映射成新元素
}).collect(Collectors.toList());
在這個例子中,我們用流對舊列表進行處理,轉換成一個新的列表。下面是一個使用了map方法的例子:
List<Integer> numberList = Arrays.asList(2, 3, 4, 5);
List<Integer> numberSquareList = numberList.stream().map(x -> x * x).collect(Collectors.toList());
numberSquareList.forEach(number -> { System.out.println(number); });
我們定義了一個整數列表,並使用map方法將每個元素平方後轉化為新的整數列表。output:
4
9
16
25
三、filter方法
除了map方法以外,Java8還引入了另一個函數:filter函數。它可以用來從集合中過濾出符合條件的元素。其實現如下:
List<T> newList = oldList.stream().filter(element -> {
//用謂詞函數過濾元素
}).collect(Collectors.toList());
其中過濾集合的謂詞函數為一個返回boolean類型的函數。下面是一個使用filter方法的例子:
List<String> fruits = Arrays.asList("apple", "banana", "orange", "cherry");
List<String> filterFruits = fruits.stream().filter(fruit -> fruit.contains("a")).collect(Collectors.toList());
filterFruits.forEach(filterFruit -> { System.out.println(filterFruit); });
這個例子會將“含有字母a”的元素篩選出來。output:
apple
banana
orange
四、flatMap方法
flatMap方法也是Java8中的一種新方法。它可以用於多維集合,將其依照指定格式輸出。其實現如下:
List<R> newList = oldList.stream().flatMap(element -> {
//將每個元素從舊列表映射成一個新的流
}).collect(Collectors.toList());
下面是一個使用flatMap方法的例子:
List<List<String>> list = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
List<String> flatList = list.stream().flatMap(innerList -> innerList.stream()).collect(Collectors.toList());
flatList.forEach(flatString -> { System.out.println(flatString); });
這個例子中,我們定義了一個多級列表。flatMap方法將每個元素從舊列表中映射為一個新的列表。
五、reduce方法
reduce方法還是Java8中的一種新方法,它可以將多個元素結合為一個元素。其實現如下:
R result = list.stream().reduce(initialValue, (a, b) -> {
//用二元運算符操作兩個元素
});
在這個例子中,reduce是把列表中的所有元素合併成一個值。下面是reduce方法的代碼實現:
List<Integer> numbers = Arrays.asList(5, 10, 15);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
System.out.println("Sum: " + sum);
在這個例子中,我們定義了一個整數列表,並使用reduce方法將所有元素累加求和。output:
Sum: 30
六、總結
無論是forEach、map、filter、flatMap還是reduce方法,都是Java8中非常有用的函數。它們為開發人員提供了一個非常方便的方法,使得操作集合變得更加簡單和高效。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/275773.html