![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java8
文章平均质量分 59
不正、
这个作者很懒,什么都没留下…
展开
-
List通过stream把字符转成BigDecimal格式并求和
今天遇到需要将集合中String类型的金额转成BigDecimal格式并求和,之前用的for循环的方法,感觉比较麻烦,今天试着转成了流的形式.下面两种写法结果一样: private List<Order> moneys = Arrays.asList( new Order("800"), new Order("100"), new Order("2")); @Test public void test31原创 2021-02-24 18:33:39 · 5104 阅读 · 0 评论 -
Java8实战读书笔记-第9章 默认方法
Java8允许在接口内声明静态方法;Java8可以在接口内添加默认方法.实现类会默认继承接口的默认方法,实现类可以重写该方法.通过在Java8中引入这一新特性,,缺失的方法实现会作为接口的一 部分由实现类继承(所以命名为默认实现),而无需由实现类提供。复习一下抽象类和抽象接口:1.抽象类可以有实例变量(字段),接口不能有实例变量2.一个类只可以继承一个抽象类,但是可以实现多个接口9.3 默认方法的使用模式默认方法的两种用例:可选方法和行为的多继承。9.3.1 可选方法采用默认方法之原创 2021-02-24 09:55:59 · 91 阅读 · 0 评论 -
Java8实战读书笔记-第8章 重构、测试和调试
第 8 章 重构、测试和调试8.1 为改善可读性和灵活性重构代码8.1.2 从匿名类到Lambda表达式的转换某些情况下,将匿名类转换为Lambda表达式可能是一个比较复杂的过程 。 首先,匿名类和Lambda 表达式中的this和super的含义是不同的。在匿名类中,this代表的是类自身,但是在Lambda中,它代 表的是包含类。其次,匿名类可以屏蔽包含类的变量,而Lambda表达式不能(它们会导致编译错误)8.1.3 从Lambda表达式到方法引用的转换8.1.4 从命令式的数据处理切换原创 2021-02-24 09:54:10 · 86 阅读 · 0 评论 -
Java8实战读书笔记-第6章 用流收集数据
6.1 收集器简介6.1.1 收集器用作高级归约对流调用collect方法将对流 中的元素触发一个归约操作(由Collector来参数化)。一般来说,Collector会对元素应用一个转换函数(很多时候是不体现任何效果的恒等转换,例如 toList),并将结果累积在一个数据结构中,从而产生这一过程的最终输出。6.1.2 预定义收集器6.2 归约和汇总在需要将流项目重组成集合时,一般会使用收集器(Stream方法collect的参 数)。再宽泛一点来说,但凡要把流中所有的项目合并成一个结原创 2021-02-02 18:35:09 · 118 阅读 · 0 评论 -
Java8实战读书笔记-第5章 使用流
第5章今天读了一下午,主要是需要敲的案例比较多,第五章案例基本完整代码如下;测试题的实体类代码在这篇文章最下面5.1 筛选和切片见代码@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class DishStreamTest { private List<Dish> menu = Arrays.asList( new Dish("pork", false, 800, Dish.Ty原创 2021-02-01 17:12:00 · 149 阅读 · 1 评论 -
Java8实战读书笔记-第4章 引入流
4.1 流是什么流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码了!4.2 流简介流:从支持数据处理操作的源生成的元素序列List<String> list = menu.stream().filter(e -> e.getCalories() < 400 && e.isVegetarian(原创 2021-02-01 17:08:41 · 85 阅读 · 0 评论 -
Java8实战读书笔记-第3章 λ表达式
可以在函数式接口上使用λ表达式,函数式接口就是只定义一个抽象方法的接口(函数式接口只可以定义一个抽象接口,但是可以定义多个默认方法)。Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例(具体说来,是函数式接口一个具体实现的实例)。@FunctionalInterface表示该接口被设计成一个函数式接口请注意,任何函数式接口都不允许抛出受检异常(checked exception)。如果...原创 2021-02-01 17:07:07 · 125 阅读 · 0 评论 -
Java8实战读书笔记-第2章 通过行为参数化传递代码
行为参数化行为参数化是一个很有用的模式,它能够轻松地适应不断变化的需求。这种模式可以把一个行为(一段代码)封装起来,并通过传和使用创建的行为(例如对Apple的不同谓词)将方法的行为参数化。前面提到过,这种做法类似于策略设计模式。小结行为参数化,就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力。行为参数化可让代码更好地适应不断变化的要求,减轻未来的工作量。传递代码,就是将新行为作为参数传递给方法。但在Java8之前这实现起来很啰嗦。为接口声明许多只用一次的实体类而原创 2021-02-01 17:03:13 · 75 阅读 · 0 评论 -
Java8实战读书笔记-第1章
最近意识到对java8的新特性不是很熟悉,所以开始读《Java8实战》,现在把读书笔记整理下.一些概念流处理流是一系列数据项,一次只生成一项。程序可以从输入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。可以理解为对一个集合(输入流)进行各种拆卸组装,得到你想要的结果(输出流).用行为参数化把代码传递给方法有点类似策略模式,把对对象的筛选条件作为对象的属性(这一步叫行为参数化),然后通过传递此对象的方式,把这个对象作为参数传给方法,这原创 2021-02-01 17:01:15 · 86 阅读 · 0 评论