java
主要讲解java的基础内容
z_yemu
一直在努力路上的程序员
展开
-
JAVA8学习6-流(1)
6 流Collection 提供了心的 stream() 方法流不存储值,通过管道的方式获取值本质是函数式的,对流的操作会生成一个结果,不过并不会修改底层的数据源,集合可以作为流的底层数据源延迟查找,很多炉操作(过滤、映射、排序等)都可以延迟实现。6.1 流由3部分构成:源零个或者多个中间操作(惰性求值)终止操作(及早求值)6.2 流操作的分类:惰性求值及早求值...原创 2019-04-16 15:38:00 · 122 阅读 · 0 评论 -
JAVA8学习8-Comparator 比较器详解
8 comparator 比较器详解 int compare(T o1, T o2) o1 比 o2 返回负数,o1 比 o2 小,返回 0 相等,返回整数 01 比 02 大。 在java8之后,comparator 是一个函数式接口,对接口进行了增强(增加了相当多的默认方法)。reversed 倒叙comparing 比较器(comparingInt 、 comparingLon...原创 2019-04-19 11:03:49 · 5288 阅读 · 0 评论 -
JAVA8学习10-spliterator 接口分析
1. spliterator 分割迭代器 spliterator 是一个可分割迭代器(splitable iterator),可以和 iterator 顺序遍历迭代器一起看。jdk1.8发布后,对于并行处理的能力大大增强,Spliterator 就是为了并行遍历元素而设计的一个迭代器,jdk1.8中的集合框架中的数据结构都默认实现了 spliterator 分割迭代器主要是用来对源...原创 2019-04-24 10:01:57 · 403 阅读 · 0 评论 -
JAVA8学习9-自定义收集器(Characteristics 使用说明)
9 自定义收集器 在自定义收集器前,我们再确定下 Collector 接口函数接收参数和该实现的方法。public interface Collector<T, A, R> { // A 结果类型,T 中间操作类型,R 最终返回类型,一般情况下,A=R Supplier<A> supplier(); // 源数据对象类型(中间操作对象类型) BiC...原创 2019-04-19 15:34:52 · 1978 阅读 · 0 评论 -
内部类和lamdba 引用最终变量(final)做更新操作
我们知道内部类使用外部变量时,需要的是一个不可变的量(final),但有时因为 final 限制显得并不太方便,如:我们想要在一个封闭作用域中设计一个计时器,如我们想要计算排序过程中的调用 compareTo的次数,那该怎么解决,一般我们是这么写: public static void main(String[] args) { int counter = 0; ...原创 2019-05-04 15:43:47 · 209 阅读 · 0 评论 -
泛型之通配符-上界下界
在泛型中,通配符 ? 是比较难理解的一部分,这里,我们介绍下 上界和下界。直接给代码,在代码中看注释比较清晰。首先我们先准备一些类:public class Pair<T> { private T first; private T second; public Pair(T first, T second) { this.first = ...原创 2019-05-05 18:15:06 · 686 阅读 · 0 评论 -
JAVA8学习11-stream 流水线原理
看看大佬们写的把,我也还不是很清楚,等明白了,再补充。https://www.cnblogs.com/Dorae/p/7779246.html原创 2019-04-25 17:02:20 · 212 阅读 · 0 评论 -
java8 Map中新增的方法介绍
相信大家都有看到,在 java8 后,大量的方法都包含两个单词,ifAbsent 和 ifPresent。absent 表示缺席,理解为当前不存在 即 ifAbsent 在map中主要意思就是 如果 get(key) == null 执行present 表示当下,理解为当下有值, 即 ifPresent 在map中主要的意思就是 如果 get(key) != null 执行这里介绍常用的一...原创 2019-05-07 18:25:55 · 2056 阅读 · 0 评论 -
JAVA8学习7-Collector接口详解以及实现类
7 Collector 接口详解(collect 收集器、Collectors)*****************collect: 收集器Collector 作为 collect 方法的参数Collector 本身是一个接口,它是一个可变的汇聚操作,作用是将输入元素累积到一个可变的结果容器中(如ArrayList 是一个可变容器);(可选操作)它会在所有元素都处理完毕后,将累积的...原创 2019-04-19 09:01:22 · 1583 阅读 · 0 评论 -
JAVA8学习6-流(3)
6.8 并行流 parallelStream parallelStream 会充分利用我们计算机多线程,使程序执行更快,耗时更短。用法上与 stream 没有区别。实例代码:package cn.zxhysy.jdk8.steam;import java.util.ArrayList;import java.util.List;import java.util.UUID;impo...原创 2019-04-18 12:03:24 · 138 阅读 · 0 评论 -
JAVA8学习1-Lambda 表达式
JAVA8学习1.Lambda 表达式在java8之前,我们无法将行数作为参数传递给一个方法,也无法声明返回一个函数的方法在JavaScript中,函数参数是一个函数,返回值是另一个函数的情况非常常见;JavaScript是一门非常典型的函数式语言;JavaScript回调函数写法a.execute(callback(event){ event...... })...原创 2019-04-13 15:01:43 · 277 阅读 · 0 评论 -
JAVA8学习2-函数式接口
2 函数式接口2.1 主要信息:Note that instances of functional interfaces can be created with lambda expressions, method references, or constructor references.(重点)an interface declares an abstract method overr...原创 2019-04-13 15:03:58 · 261 阅读 · 0 评论 -
JAVA8学习3-Optional类
3 Optional 类 java.util 包下解决空指针异常的类, java8之前,我们通过手动判断对否了空,但往往我们都会忘记判断,导致 NPE。Optional 是一个 value-base Class,最好不要在上面操作比较如 equals。不建议用做参数类型或成员变量,因为 optional 没有序列化。optional 通常作为方法的返回值。 Optional 本质就是一个容...原创 2019-04-13 15:06:20 · 205 阅读 · 0 评论 -
JAVA8学习4-方法引用(Method reference)
4. 方法引用(Method reference)方法引用其实就是 Lambda 表达式的语法糖 方法引用本质上就是一个【函数指针】function pointer注意: 方法调用和方法引用没有半毛钱关系,如果学过 JavaScript 就类似于使用函数变量地址值的传递。方法引用分4类: 我们先建个类,用于对象排序。package cn.zxhysy.jdk8.methodref...原创 2019-04-13 17:36:25 · 560 阅读 · 0 评论 -
JAVA8学习6-流(2)
6.6 Stream 流的常用操作方法介绍流的操作前,先给出个问题:1, 3, 5,7, 9,11找出该流中大于2的元素,然后将每个元素乘以2,然后忽略掉流中的前两个元素,然后再去流中的前两个元素,最后求出流中元素的总和Stream<Integer> stream = Stream.iterate(1, item -> item + 2).limit(6);int su...原创 2019-04-17 08:26:03 · 318 阅读 · 0 评论 -
JAVA8学习5-接口默认方法(default)
5 接口默认方法 在 java8 之后,我们可以在接口中写默认实现方法。使用关键字 default 定义默认接口实现 现在对接口默认方法的几种情况进行说明。5.1 一个类实现一个默认实现方法的接口 首先我们定义一个接口package cn.zxhysy.jdk8.dufaultmethod;public interface MyInterface { default ...原创 2019-04-15 15:24:11 · 3165 阅读 · 0 评论 -
JAVA8学习9-Collectors 类分析
9.2 Collectors 类分析 对应 Collectors 静态工厂类来说,其实共分为两种情况:通过 CollectorImpl 内部类来实现通过 reducing 方法来实现,reducing 方法本身又是通过 CollectorImpl 来实现的其实上面自定义的会了之外,看 Collectors 类的实现,都会感到很亲切的。这里不说了。介绍几个上面没用过的方法:9.2.1...原创 2019-04-23 09:01:26 · 602 阅读 · 0 评论 -
reduce和collect 自定义返回值
reduce 方法自定义约简需要三个参数:原值累积器组合器//计算字符串流的总长度 Stream<String>int result = words.reduce(0, (total, word)->total+world.length(), (total1, total2)->total1+tatal2);collect 方法,自定义返回集合需要三个...原创 2019-05-12 16:12:28 · 610 阅读 · 0 评论