目录
🌼Java8 Stream可以从集合、数组、文件等数据源中创建。下面是一些创建Stream的示例代码:
Java8 Stream可以使用filter()方法过滤数据,例如只保留符合条件的数据。下面是一个过滤数据的示例代码:
🌼Java8 Stream可以使用map()方法映射数据,例如将一种类型的数据转换成另一种类型的数据。下面是一个映射数据的示例代码:
🌼Java8 Stream可以使用sorted()方法排序数据,例如按照某个属性进行排序。下面是一个排序数据的示例代码:
🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:
🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:
🌼Java8 Stream可以使用parallel()方法并行处理数据,例如并行计算。下面是一个并行计算的示例代码:
🌼noneMatch()方法:判断是否所有元素都不符合条件。
🌼前言:
Java8 Stream是Java8中新增的一个API,它可以用于处理集合和数组等数据源,提供了丰富的操作方法,例如过滤、映射、排序、聚合等。使用Java8 Stream可以简化代码,提高程序的可读性和可维护性
🌼 Java8 Stream都有哪些函数 :
filter(Predicate predicate):过滤数据,返回一个符合条件的Stream。
map(Function<T, R> mapper):映射数据,返回一个映射后的Stream。
flatMap(Function<T, Stream> mapper):将多个Stream合并成一个Stream。
sorted():排序数据,返回一个排序后的Stream。
distinct():去重,返回一个去重后的Stream。
limit(long maxSize):限制元素数量,返回一个限制后的Stream。
skip(long n):跳过元素数量,返回一个跳过后的Stream。
forEach(Consumer action):遍历数据,对每个元素执行指定的操作。
reduce(T identity, BinaryOperator accumulator):聚合数据,返回一个聚合后的结果。
collect(Collector<T, A, R> collector):收集数据,返回一个收集后的结果。
anyMatch(Predicate predicate):判断是否存在符合条件的元素。
allMatch(Predicate predicate):判断是否所有元素都符合条件。
noneMatch(Predicate predicate):判断是否所有元素都不符合条件。
findFirst():返回第一个元素。
findAny():返回任意一个元素。
count():返回元素数量。
min(Comparator comparator):返回最小值。
max(Comparator comparator):返回最大值。
toArray():将Stream转换成数组。
parallel():并行处理数据。
sequential():串行处理数据。
onClose(Runnable closeHandler):在Stream关闭时执行指定的操作。
isParallel():判断是否为并行Stream。
🌼Java8 Stream可以从集合、数组、文件等数据源中创建。下面是一些创建Stream的示例代码:
// 从集合中创建Stream
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream1 = list.stream();
// 从数组中创建Stream
int[] array = {1, 2, 3, 4, 5};
IntStream stream2 = Arrays.stream(array);
// 从文件中创建Stream
Path path = Paths.get("data.txt");
Stream<String> stream3 = Files.lines(path);
Java8 Stream可以使用filter()方法过滤数据,例如只保留符合条件的数据。下面是一个过滤数据的示例代码:
我们使用了filter()方法过滤了以字母"a"开头的字符串,只保留符合条件的字符串,并使用forEach()方法输出结果。
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
stream.filter(s -> s.startsWith("a")).forEach(System.out::println);
🌼Java8 Stream可以使用map()方法映射数据,例如将一种类型的数据转换成另一种类型的数据。下面是一个映射数据的示例代码:
我们使用了map()方法将字符串转换成大写字母,并使用forEach()方法输出结果。
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
stream.map(String::toUpperCase).forEach(System.out::println);
🌼Java8 Stream可以使用sorted()方法排序数据,例如按照某个属性进行排序。下面是一个排序数据的示例代码:
在上面的代码中,我们使用了sorted()方法按照年龄进行排序,并使用forEach()方法输出结果。
List<Person> list = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 30),
new Person("Charlie", 25)
);
Stream<Person> stream = list.stream();
stream.sorted(Comparator.comparing(Person::getAge)).forEach(System.out::println);
🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);
🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);
🌼Java8 Stream可以使用parallel()方法并行处理数据,例如并行计算。下面是一个并行计算的示例代码:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.parallelStream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);
🌼noneMatch()方法:判断是否所有元素都不符合条件。
- anyMatch()方法:判断是否存在符合条件的元素。
- flatMap()方法:将多个Stream合并成一个Stream。
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
boolean result = stream.noneMatch(i -> i < 0);
System.out.println(result);
List<List<Integer>> list = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4),
Arrays.asList(5, 6)
);
Stream<List<Integer>> stream1 = list.stream();
Stream<Integer> stream2 = stream1.flatMap(Collection::stream);
stream2.forEach(System.out::println);
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
boolean result = stream.anyMatch(i -> i > 3);
System.out.println(result);
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.skip(2).forEach(System.out::println);
skip()方法:跳过元素数量,返回一个跳���后的Stream。
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.limit(3).forEach(System.out::println);
limit()方法:限制元素数量,返回一个限制后的Stream。