Stream流:自定义的distinctByKey根据对象的属性进行去重
摘要:一、distinct去重 1、distinct简单去重 Stream提供的distinct()方法除了去除重复的对象 private static void testDistinct() { int[] ints = {1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4}; Arrays
阅读全文
posted @
2022-02-09 22:52
周文豪
阅读(8755)
推荐(0) 编辑
java8新特性→Optional:适用于层级处理非空判断(依赖上一步操作)的场合
摘要:一、Optional入门 Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包含对象是否为空,isPresent方法返回false则表示Optional包含对象为空,否则可以使用get()取出对象进行操作。 之前的写法:
阅读全文
posted @
2021-05-20 16:43
周文豪
阅读(2298)
推荐(0) 编辑
java8新特性→方法和构造函数引用:替代Lambda表达式或函数式接口
摘要:Method and Contrutor References 函数式接口是Lambda的基础,而方法引用是Lambda的孪生兄弟。 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方
阅读全文
posted @
2021-05-20 16:40
周文豪
阅读(550)
推荐(0) 编辑
java8新特性→Stream流:用于解决已有集合类库既有的弊端,排序
摘要:说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢? 在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。 一、传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或Map
阅读全文
posted @
2021-05-20 16:38
周文豪
阅读(535)
推荐(0) 编辑
java8新特性→函数式接口
摘要:所有接口中,只有函数式接口才能进行函数式编程,即才能使用Lambda表达式,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门 一、接口使用的三种方式 1、创建一个类实现接口,在类中重写接口的抽象方法。创建实现类对象来使用。 2、通过匿名内部类的方式来使用接口(注意匿名内
阅读全文
posted @
2021-05-20 16:36
周文豪
阅读(234)
推荐(0) 编辑
java8新特新→Lambda表达式
摘要:一、函数式编程(Functional Programming)思想概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。 面向对象的
阅读全文
posted @
2021-05-20 16:35
周文豪
阅读(94)
推荐(0) 编辑