目录

​重要方法​

​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)]