Java集合框架中常用的函数式操作方法
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());
