filter():根据指定的 predicate 保留符合条件的元素。
map():根据指定的 function 映射每个元素,生成一个新的 stream。
flatmap():将每个元素映射为一个 stream,然后将这些 stream 连接成一个 stream。
distinct():返回一个去重后的 stream。
sorted():对 stream 进行排序。
peek():对每个元素执行指定的操作,但并不消费元素。
limit():返回一个截断后的 stream。
skip():返回一个跳过指定元素后的 stream。
foreach():对每个元素执行指定的操作。
toarray():将 stream 转换为数组。
示例示例 1:使用 filter() 方法过滤奇数import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); list<integer> evennumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(collectors.tolist()); system.out.println("even numbers: " + evennumbers); }}
输出结果:
even numbers: [2, 4, 6, 8, 10]
示例 2:使用 map() 方法将每个字符串转换为大写import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<string> words = arrays.aslist("hello", "world", "java", "stream"); list<string> capitalizedwords = words.stream() .map(string::touppercase) .collect(collectors.tolist()); system.out.println("capitalized words: " + capitalizedwords); }}
输出结果:
capitalized words: [hello, world, java, stream]
示例 3:使用 flatmap() 方法将嵌套的列表展平为一个列表import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<list<integer>> nestednumbers = arrays.aslist( arrays.aslist(1, 2), arrays.aslist(3, 4, 5), arrays.aslist(6, 7, 8, 9) ); list<integer> flattenednumbers = nestednumbers.stream() .flatmap(list::stream) .collect(collectors.tolist()); system.out.println("flattened numbers: " + flattenednumbers); }}
输出结果:
flattened numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9]
示例 4:使用 distinct() 方法去除重复元素import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 2, 1, 4, 5, 4, 3, 6); list<integer> distinctnumbers = numbers.stream() .distinct() .collect(collectors.tolist()); system.out.println("distinct numbers: " + distinctnumbers); }}
输出结果:
distinct numbers: [1, 2, 3, 4, 5, 6]
示例 5:使用 sorted() 方法对 stream 进行排序import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(5, 3, 8, 2, 9, 1, 7, 4, 6, 10); list<integer> sortednumbers = numbers.stream() .sorted() .collect(collectors.tolist()); system.out.println("sorted numbers: " + sortednumbers); }}
输出结果:
sorted numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
示例 6:使用 peek() 方法打印每个元素并统计元素个数import java.util.arrays;import java.util.list;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); int count = numbers.stream() .peek(system.out::println) .maptoint(integer::intvalue) .sum(); system.out.println("total count: " + count); }}
输出结果:
1
2
3
4
5
6
7
8
9
10
total count: 55
示例 7:使用 limit() 方法限制结果集大小import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); list<integer> limitednumbers = numbers.stream() .limit(5) .collect(collectors.tolist()); system.out.println("limited numbers: " + limitednumbers); }}
输出结果:
limited numbers: [1, 2, 3, 4, 5]
示例 8:使用 skip() 方法跳过前面的元素import java.util.arrays;import java.util.list;import java.util.stream.collectors;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); list<integer> skippednumbers = numbers.stream() .skip(5) .collect(collectors.tolist()); system.out.println("skipped numbers: " + skippednumbers); }}
输出结果:
skipped numbers: [6, 7, 8, 9, 10]
示例 9:使用 foreach() 方法打印每个元素import java.util.arrays;import java.util.list;public class example { public static void main(string[] args) { list<string> words = arrays.aslist("hello", "world", "java", "stream"); words.stream() .foreach(system.out::println); }}
输出结果:
hello
world
java
stream
示例 10:使用 toarray() 方法将 stream 转换为数组import java.util.arrays;import java.util.list;public class example { public static void main(string[] args) { list<integer> numbers = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); integer[] numberarray = numbers.stream() .toarray(integer[]::new); system.out.println("number array: " + arrays.tostring(numberarray)); }}
输出结果:
number array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
以上就是java stream api使代码更出色的操作方法是什么的详细内容。
