Java8新特性-----Stream API和日期

一、Stream API

         概念 :主要是操作数组和集合,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。                       使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。也可以使用Stream API来并行执行操作

      

          Stream特点:

                           1、自己不会存储数据

                           2、不会改变原对象,处理时会建立新的Stream对象。

                           3、Stream是延时操作,只有等到需要结果的时候,才会去执行。

          如何使用Stream API:

                           1、创建一个Stream

                           2、在一个或者多个步骤中,将一个初始Stream转化到另一个Stream的中间操作

                           3、使用终止操作来产生一个结果,该操作会强制他之前的延迟操作执行。在此之后该Stream就不会再被使用

             1、Stream的创建方法:

                         forEach()是一个终止操作,后面不能再跟操作

                       

                2、Stream的中间操作

                       中间操作包括:map (mapToInt, flatMap 等)、 filter(从流中过滤元素)、distinct(筛选)、sorted(排序)、peek、                                                          limit(限制,使元素不超过给定数量)、skip(跳过元素)、parallel、sequential、 unordered。

                        多个中间操作可以连接起来形成一个流水线,除非流水线上触发终止操作,否则中间操作不会执行任何的处理!                          而在终止操作时一次性全部处理,称为“惰性求值”。

                        筛选或切片:

                        映射:

                          含义:1、提取集合或者数组元素

                                     2、将集合或者数组中的元素转换成其他形式存储(字母小写变大写,不会破环原集合)

                      排序:

                 3、Stream的终止操作

                        终止操作包括:forEach、forEachOrdered、toArray、reduce、collect、min、max、count、anyMatch、                                                                  allMatch、noneMatch、findFirst、findAny、iterator。

                        allMatch——检查是否匹配所有元素
                        anyMatch——检查是否至少匹配一个元素
                        noneMatch——检查是否没有匹配的元素
                        findFirst——返回第一个元素
                        findAny——返回当前流中的任意元素
                        count——返回流中元素的总个数
                        max——返回流中最大值
                        min——返回流中最小值

                  4、并行操作

                        Stream有并行串行两种操作,串行Stream上的操作是在一个线程中依次完成,而并行Stream则是在多个线程                                                                               上同时执行。

                        并行创建的方式:

                                    

                                       效率高于串行

二、日期

          旧版的Java中,存在着很多的问题。(Date    SimpleDateFormat)

               1、非线程安全问题       旧版的Java类中所有的日期类都是可变的

               2、设计很差

               3、时区处理很麻烦

           java8之后开始使用:LocalDate    LocalDateTime

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值