一、min()
@Test
void test1(){
List<Integer> list = List.of(1,4,2,8,5);
Integer num = list.stream().min((o1, o2) -> o1.compareTo(o2)).get();
System.out.println(num);
}
二、max()
@Test
void test2(){
System.out.println(list.stream().max((o1, o2) -> o1.compareTo(o2)).get());
}
三、findFirst()
@Test
void test3(){
List<Integer> list = Arrays.asList(1, 4, 2, 8, 5);
Integer num1 = list.stream().findFirst().get();
System.out.println(num1);
Integer num2 = list.parallelStream().findFirst().get();
System.out.println(num2);
}
四、findAny()
@Test
void test4() {
List<Integer> list = Arrays.asList(1, 4, 2, 8, 5);
Integer num1 = list.stream().findAny().get();
System.out.println(num1);
Integer num2 = list.parallelStream().findAny().get();
System.out.println(num2);
}
五、map()
@Data
@AllArgsConstructor
@NoArgsConstructor
static class User {
private String name;
private Integer age;
}
@Test
void test5() {
List<String> asList = Arrays.asList("1", "2", "5", "4");
asList.stream().map(str -> Integer.parseInt(str)).forEach(str -> {
System.out.println(str);
System.out.println(str.getClass());
});
List<User> list = List.of(new User("张三", 13), new User("李四", 36), new User("王五", 12));
list.stream().map(user -> user.getName()).forEach(name -> {
System.out.println(name);
});
}
六、filter()
@Test
void tst6() {
List<User> list = List.of(new User("张三", 13), new User("李四", 36), new User("王五", 12));
list.stream().filter(user -> user.getAge() >= 13).forEach(user -> {
System.out.println(user.getName());
});
}
七、flatMap()
@Test
void tst7() {
List<String> stringList = new ArrayList<>();
stringList.add("aa");
stringList.add("bb");
stringList.add("cc");
stringList.stream().map(str -> str.split("")).flatMap(st -> Arrays.stream(st)).forEach(System.out::print);
}
八、anyMatch()
@Test
void tst() {
List<String> a = List.of("a", "a", "a");
List<String> b = List.of("a", "a", "a","b");
boolean mark1 = a.stream().anyMatch(o -> o.equals("a"));
System.out.println(mark1);
boolean mark2= b.stream().anyMatch(o -> o.equals("a"));
System.out.println(mark2);
}
九、allMatch()
@Test
void tst9() {
List<String> a = List.of("a", "a", "a");
List<String> b = List.of("a", "a", "a", "b");
boolean mark1 = a.stream().allMatch(o -> o.equals("a"));
boolean mark2 = b.stream().allMatch(o -> o.equals("a"));
System.out.println("mark1:" + mark1 + "----mark2:" + mark2);
}
十、nonMatch()
@Test
void tst10(){
List<String> b = List.of("a", "a", "a", "b");
boolean mark = b.stream().noneMatch(o -> o.equals("c"));
System.out.println(mark);
}
十一、sorted()
@Test
void tst11() {
List<User> users = new ArrayList<>();
users.add(new User("张三", 12));
users.add(new User("李四", 15));
users.add(new User("王五", 13));
Stream<User> sorted1 = users.stream().sorted(Comparator.comparingInt(User::getAge));
sorted1.forEach(System.out::println);
System.out.println("-------------");
Stream<User> sorted2 = users.stream().sorted(Comparator.comparingInt(User::getAge).reversed());
sorted2.forEach(System.out::println);
}
十二、peek()
@Test
void tst12() {
List<User> users = new ArrayList<>();
users.add(new User("张三", 12));
users.add(new User("李四", 15));
users.add(new User("王五", 13));
List<User> userList = users.stream().filter(o -> o.getAge() > 12).peek(user -> {
user.setAge(user.getAge() + 5);
}).collect(Collectors.toList());
System.out.println(userList);
}
十三、limit()、skip()
@Test
void tst13(){
Stream.iterate(1,x->++x).skip(5).limit(10).forEach(System.out::print);
}
十四、reduce()
@Test
void tst14(){
List<Integer> list = Stream.iterate(1, x -> ++x).limit(10).collect(Collectors.toList());
Integer reduce = list.stream().reduce(0, (a, b) -> a + b);
System.out.println(reduce);
int a=0;
for (Integer integer : list) {
a += integer;
}
System.out.println(a);
}