使用JavaStreamAPI调用函数的方法和示例
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进行复杂的数据处理,提高开发效率。
