Java8 Stream 基本操作示例
2017-07-06 16:52
543 查看
package Stream; import java.util.ArrayList; import java.util.Arrays; import java.util.IntSummaryStatistics; import java.util.List; import java.util.Optional; import java.util.OptionalInt; import java.util.stream.Collectors; public class Java8Stream { public static void main(String[] args) { System.out.println("hello Stream"); List<Person> list=getPersoms(); //调用Stream(流)API函数 //List<Person> studentList boolean isAllMatch=list.stream().allMatch(Person::isStudent); boolean isAnyMatch=list.stream().anyMatch(Person::isStudent); boolean isALLNotMatch=list.stream().noneMatch(Person::isStudent); System.out.println("is All student? "+isAllMatch); System.out.println("is Any student? "+isAnyMatch); System.out.println("is no student? "+isALLNotMatch); List<String> studentList=list.stream(). filter(Person::isStudent).//筛选出学生 //map((Person person)->person.getName()).//获取学生名字形成新的流 map(Person::getName). collect(Collectors.toList());//将新的流返回给studentList System.out.println("studentList: "+studentList); //flatMap List<String> strlist=new ArrayList<String>(); strlist.add("I am a boy"); strlist.add("I love the girl"); strlist.add("But the girl loves another girl"); List<String> resultlist=strlist.stream(). map(line->line.split(" ")).//转化为String[] flatMap(Arrays::stream).//转化为Stream distinct().//去除重复的String collect(Collectors.toList());//返回集合 System.out.println("resultlist: "+resultlist); //获取第一个元素findFirst Optional<Person> person = list.stream().findFirst(); System.out.println("findFirst: "+person.get()); OptionalInt maxAge =list.stream().mapToInt(Person::getAge).max(); System.out.println("maxAge: "+maxAge.getAsInt()); IntSummaryStatistics all=list.stream().collect( b83b Collectors.summarizingInt(Person::getAge)); System.out.println("sumAge:"+all.getSum()+" aver"+all.getAverage() +" minAge"+all.getMin()+" maxAge"+all.getMax()); } /** * 测试数据 * @return */ public static List<Person> getPersoms(){ List<Person> list=new ArrayList<Person>(); Person person; for(int i=0;i<10;i++){ person=new Person(); person.setAge(i); person.setName("lice"+String.valueOf(i)); person.setStudent(true); list.add(person); } return list; } /** * 测试数据 * @return */ public static List<Integer> getNumbers(){ List<Integer> list=new ArrayList<Integer>(); for(int i=0;i<10;i++) list.add(i); return list; } }
相关文章推荐
- java文件的基本操作示例
- Java操作FreeMarker模板引擎的基本用法示例小结
- java文件的基本操作示例
- 基于Elasticsearch2.1.1的JavaAPI基本操作代码示例
- JAVA 8 StreamAPI 和 lambda表达式 总结(二)--Stream基本操作
- mongodb基本命令和Java操作API示例
- Java8 Stream的终止操作使用示例
- java对基本数据类型的流的操作
- 工作簿(Workbook)基本操作应用示例(一)
- 窗口(Window对象)基本操作应用示例(二)
- JAVA文件操作类和文件夹的操作代码示例
- 关于在Java程序当中创建对象等基本操作的性能测试
- asp基本操作数据库语句示例
- Java 数据库基本操作
- Berkeley DB Java Edition 基本示例
- java 数据库基本操作及ResultSet高级应用
- JAVA数据库基本操作
- 工作簿(Workbook)基本操作应用示例(二)
- Java数据库基本操作
- Excel应用程序对象(Application对象)及其常用方法基本操作应用示例