创建流
要创建一个集合的流很简单,只需要在该集合的后面接上.stream()
即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import java.util.Arrays; import java.util.List; import java.util.stream.Stream;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); Stream<String> stringStream = stringList.stream(); } }
|
filter过滤
通过filter方法可以选出符合条件的元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import java.util.Arrays; import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); stringList.stream().filter(s -> s.startsWith("al")).forEach(System.out::println); } }
|
map处理元素
通过map方法可以对元素进行一些处理,下面的代码将所有字符串都转换成大写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Arrays; import java.util.List; import java.util.function.Function;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); stringList.stream().map((Function<String, Object>) String::toUpperCase).forEach(System.out::println); } }
|
获取指定数量元素
通过limit方法可以获取指定数量的元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Arrays; import java.util.List; import java.util.function.Function;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); stringList.stream().limit(3).forEach(System.out::println); } }
|
跳过指定下标前元素
通过skip方法可以跳过指定下标前面的元素,即:将指定下标前面的元素删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Arrays; import java.util.List; import java.util.function.Function;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); stringList.stream().skip(2).forEach(System.out::println); } }
|
计算元素个数
使用count方法计算元素的个数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Arrays; import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); Long count=stringList.stream().filter(s -> s.startsWith("al")).count(); System.out.println(count); } }
|
排序
通过sorted方法可以对集合进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Arrays; import java.util.Comparator; import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); stringList.stream().sorted(String::compareTo).forEach(System.out::println); } }
|
生成新集合
通过collect方法可以生成一个新的集合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); List<String> resultList = stringList.stream().sorted(String::compareTo).collect(Collectors.toList()); resultList.forEach(System.out::println); } }
|
生成Object数组
通过toArray方法生成Object数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("atn", "tom", "bob", "alex", "leo"); Object[] strings = stringList.stream().sorted(String::compareTo).toArray(); System.out.println(Arrays.toString(strings)); } }
|