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

Java集合框架中常用的函数式操作方法

发布时间:2023-06-11 15:47:17

Java集合框架中,常用的函数式操作方法有很多,这里就列举了一些常用的方法:

1. filter方法(filter)

该方法是用于过滤集合中不符合条件的元素,返回一个新的集合。该方法接收一个Predicate参数,它代表需要满足的条件。

示例:

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

List<Integer> evenNumbers = numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());

2. map方法(map)

该方法是用于将集合中的每个元素都映射成一个新的值,返回一个新的集合。该方法接收一个Function参数,它代表将元素映射成新的值的方法。

示例:

List<String> names = Arrays.asList("John", "Jane", "Bob");

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

3. reduce方法(reduce)

该方法是用于将集合中的元素合并成一个新的值。该方法接收一个BinaryOperator参数,它代表将两个元素合并成一个新值的方法。

示例:

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

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

4. forEach方法(forEach)

该方法是用于对集合中的每个元素执行指定的操作。该方法接收一个Consumer参数,它代表对元素执行的操作。

示例:

List<String> names = Arrays.asList("John", "Jane", "Bob");

names.stream().forEach(System.out::println);

5. max方法(max)

该方法是用于返回集合中的最大值。该方法接收一个Comparator参数,它代表比较元素的方式。

示例:

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

int max = numbers.stream().max(Integer::compareTo).get();

6. min方法(min)

该方法是用于返回集合中的最小值。该方法接收一个Comparator参数,它代表比较元素的方式。

示例:

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

int min = numbers.stream().min(Integer::compareTo).get();

7. count方法(count)

该方法是用于返回集合中元素的个数。

示例:

List<String> names = Arrays.asList("John", "Jane", "Bob");

long count = names.stream().count();

8. distinct方法(distinct)

该方法是用于去除集合中重复的元素,返回一个新的集合。

示例:

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

List<Integer> distinctNumbers = numbers.stream().distinct().collect(Collectors.toList());

9. findFirst方法(findFirst)

该方法是用于查找集合中第一个符合条件的元素。

示例:

List<String> names = Arrays.asList("John", "Jane", "Bob");

Optional<String> name = names.stream().filter(n -> n.startsWith("J")).findFirst();

10. sorted方法(sorted)

该方法是用于对集合中的元素进行排序,返回一个新的集合。该方法接收一个Comparator参数,它代表排序的方式。

示例:

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

List<Integer> sortedNumbers = numbers.stream().sorted().collect(Collectors.toList());