欢迎访问宙启技术站
智能推送

使用JavaStreamAPI调用函数的方法和示例

发布时间:2023-06-19 12:54:26

JavaStreamAPI是Java 8中新增加的函数式编程工具,它可以使开发人员更方便、高效地处理集合中的数据。在JavaStreamAPI中,要调用函数可以使用map、filter、reduce等方法。下面将通过几个示例来介绍JavaStreamAPI中如何调用函数。

1. map方法的使用示例

map方法可以将集合中的每个元素按照指定的规则进行转换。比如,将一个字符串集合中的元素全都转换成大写字母,代码如下:

List<String> list = Arrays.asList("apple", "banana", "orange");

List<String> result = list.stream().map(String::toUpperCase).collect(Collectors.toList());

System.out.println(result);

注:String::toUpperCase是Lambda表达式的方法引用,等价于 s -> s.toUpperCase()。

上面的代码中,先将List集合转换成一个Stream流,然后调用map方法,使用String::toUpperCase方法引用将每个元素转换成大写字母,最后使用collect方法将转换后的元素重新放入一个List集合中。输出结果如下:

[APPLE, BANANA, ORANGE]

2. filter方法的使用示例

filter方法可以根据指定的条件过滤集合中的元素。比如,从一个整型集合中筛选出所有大于10的元素,代码如下:

List<Integer> list = Arrays.asList(5, 8, 12, 15, 20);

List<Integer> result = list.stream().filter(i -> i > 10).collect(Collectors.toList());

System.out.println(result);

上面的代码中,使用Lambda表达式 i -> i > 10作为过滤条件。输出结果如下:

[12, 15, 20]

3. reduce方法的使用示例

reduce方法可以将集合中的所有元素按照指定的规则进行归约操作。比如,计算一个整型集合中所有元素的和,代码如下:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

int result = list.stream().reduce(0, Integer::sum);

System.out.println(result);

注:Integer::sum是Lambda表达式的方法引用,等价于 (a, b) -> a + b。

上面的代码中,使用Integer::sum方法引用作为累加器,0是初始值。输出结果如下:

15

以上就是JavaStreamAPI调用函数的方法和示例。在实际的开发中,我们可以运用JavaStreamAPI进行复杂的数据处理,提高开发效率。