目录
重要方法
demo
重要方法
-
stream
: 返回数据流,集合作为其源-
parallelStream
: 返回并行数据流, 集合作为其源-
filter
: 方法用于过滤出满足条件的元素-
map
: 方法用于映射每个元素对应的结果-
forEach
: 方法遍历该流中的每个元素-
limit
: 方法用于减少流的大小-
sorted
: 方法用来对流中的元素进行排序-
anyMatch
: 是否存在任意一个元素满足条件(返回布尔值)-
allMatch
: 是否所有元素都满足条件(返回布尔值)-
noneMatch
: 是否所有元素都不满足条件(返回布尔值)-
collect
: 方法是终端操作,这是通常出现在管道传输操作结束标记流的结束
demo
package com.nio4444.demo.java8;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class MethodRefDemo {
public static void main(String[] args) {
Optional<Person> p4 = Optional.ofNullable(Person.create(()->new Person()));
p4.ifPresent( m-> System.out.println(m));
Supplier<Person> personSupplier = Person::new ;
personSupplier.get() ;
List<Person> list = Lists.newArrayList(new Person(1,"q1",0),
new Person(5,"q5",0),
new Person(2,"q2",0)
) ;
List<Person> result = list.stream().map(new Function<Person,Person>() {
@Override
public Person apply(Person o) {
if(o.getAge()>2)
o.setMark(1);
return o ;
}
}).collect(Collectors.toList());
System.out.println(result);
List<Person> result2 = list.stream().map(o-> {
if(o.getAge()>2)
o.setMark(1);
return o ;
}).collect(Collectors.toList());
System.out.println(result2);
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
class Person implements Serializable {
private int age ;
private String name ;
private int mark ;
public static Person create(final Supplier<Person> s) {
return s.get() ;
}
}
Person(age=0, name=null, mark=0)
[Person(age=1, name=q1, mark=0), Person(age=5, name=q5, mark=1), Person(age=2, name=q2, mark=0)]
[Person(age=1, name=q1, mark=0), Person(age=5, name=q5, mark=1), Person(age=2, name=q2, mark=0)]