LinkinPark
当你的才华撑不起你野心时,那么请潜下心继续学习,心无旁骛,愿多年以后你们我都能成为自己想象的模样。
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页
摘要: 只有一个参数的函数可以将一个值转换成另一个值,如果你有2个这样的转换函数,那么在进行一个转换之后在进行第二个转换,其实也是一个中转换。 说到这里,先说一下我个人的一个习惯,我在写javaBean的set()方法时,一半都不是void类型,都是返回当前对象,这样子我在给这个对象设值的时候就可以一... 阅读全文
posted @ 2015-11-23 14:51 LinkinPark 阅读(354) 评论(0) 推荐(0)
摘要: 在函数式编程语言中,函数是一级公民。如同你可以将数字传递给方法,也可以让方法产生数字一样,函数不仅可以作为参数,也可以作为返回值。这听起来好像有点抽象,在JAVA编码中,我们好像也很少这样子写到,但是还是很有必要理解这种设计,特别是在1.8之后的java中。 现在来看下面的代码示例: publ... 阅读全文
posted @ 2015-11-23 14:48 LinkinPark 阅读(427) 评论(0) 推荐(0)
摘要: 1,现在我们封装一个方法,来提供一个比较器,显然比较器是拥有两个参数的--用来比较的两个值。 public class Linkin{ public static String[] sort(String[] array) { Arrays.sort(array, (s, t) -> Int... 阅读全文
posted @ 2015-11-23 14:47 LinkinPark 阅读(619) 评论(0) 推荐(0)
摘要: 前面的整理我们也已经说到了,使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点。在使用lambda表达式的时候务必记住一点就是说lambda表达式都是延迟执行的。 延迟执行代码的原因有很多,具体的如下。 1,在另外一个线程中运行代码 2,多次运行代码 3,在某个算法的正确时间... 阅读全文
posted @ 2015-11-23 14:45 LinkinPark 阅读(1031) 评论(0) 推荐(1)
摘要: 到目前为止,我们已经将整型收集到了一个Stream的流中,不过将每个整数包装成相应对象显然是一个低效的做法,对于其他的基本类型也是一样,我们前面说过jdk提供包装类已经自动装箱和拆箱只是为了面向对象编程,我们不应该滥用。为此,流API提供了IntStream,LongStream,DoubleS... 阅读全文
posted @ 2015-11-09 16:46 LinkinPark 阅读(556) 评论(0) 推荐(0)
摘要: 提取子流和组合流 1,limit(n)会返回一个包含n个元素的新流,如果原始流的长度小于n,则会返回原始的流。这个方法可用来裁剪指定长度的流。 2,skip(n)正好相反,它会丢弃掉前面的n个元素。 3,静态方法,concat()方法将2个流连接在一起。注意一点,第一个流的长度不应该是无限的,... 阅读全文
posted @ 2015-11-09 16:44 LinkinPark 阅读(189) 评论(0) 推荐(0)
摘要: 在Stream流操作中,比如说min(),max(),count()方法,这几个操作都会将一个流缩减成一个值,流API将这些操作称为特例缩减。另外,流API同时泛华了缩减这种概念,提供了reduce()方法,通过使用reduce()方法,可以基于任意条件,从流中返回一个值。根据定义,所有缩减操作... 阅读全文
posted @ 2015-11-09 16:42 LinkinPark 阅读(262) 评论(0) 推荐(0)
摘要: 分组和分片 对具有相同特性的值进行分组时一个很常见的任务,我们可以直接使用groupingBy来进行分组。 当分类函数是一个predicate函数时,流会被分成2组列表,一组返回true,一组返回false。 public class Test{ public static void main(... 阅读全文
posted @ 2015-11-09 16:40 LinkinPark 阅读(548) 评论(0) 推荐(0)
摘要: 虽然流不是数据存储对象,但是仍然可以使用迭代器来遍历其元素,就如同使用迭代器遍历集合中的元素一样。 流API支持2类迭代器,一类是传统的Iterator,另一类是JDK8新增的Spliterator。 对流使用传统的迭代器 要获得流的迭代器,在流上调用interator()方法,然后调用h... 阅读全文
posted @ 2015-11-09 16:35 LinkinPark 阅读(260) 评论(0) 推荐(0)
摘要: 前面的一系列博客中,我们都是从一个集合中拿到一个流,但是有时候需要执行反操作,就是从流中获得集合。实际编码中,当我们处理完流后,我们通常想查看下结果,而不是将他们聚合成一个值。我们可以调用iterator方法来生成一个传统风格的迭代器,用于访问元素。 1,将流中的元素收集到一个数组中,调用t... 阅读全文
posted @ 2015-11-09 16:33 LinkinPark 阅读(246) 评论(0) 推荐(0)
摘要: 很多时候,将一个流的元素映射到另外一个流很有帮助。映射操作最具代表的就是map()方法。实际编码中,我们会经常用到,所以这里专门整理一篇博客。 考虑如下情景,对于一个包含了姓名,电话,年龄等属性构成的数据库的流,我们现在只想处理这个流中的姓名属性。或者是我们希望对流中一些元素做一些转换,比如只针... 阅读全文
posted @ 2015-11-09 16:30 LinkinPark 阅读(316) 评论(0) 推荐(0)
摘要: 这篇博客一起来研究下使用并行流。借组多核处理器并行执行代码可以显著提高性能,但是并行编程可能十分复杂且容易出错,流API提供的好处之一是能够轻松可靠的并行执行一些操作。请求并行处理流,首先要获得一个并行流。 获取一个并行流有2个方法: 1,Collection定义的parallelStream(... 阅读全文
posted @ 2015-11-09 16:27 LinkinPark 阅读(1962) 评论(1) 推荐(0)
摘要: 流接口--BaseStream接口 流API定义了几个流接口,这些接口包含在java.util.stream中。BaseStream是基础接口,它定义了所有流都可以使用的基本功能。我们来看一下源码: public interface BaseStream> extends AutoClosea... 阅读全文
posted @ 2015-11-09 16:24 LinkinPark 阅读(875) 评论(0) 推荐(0)
摘要: 在JDK8新增的许多功能中,有2个功能最重要,一个是Lambda表达式,一个是流API。Lambda表达式前面我已经整理过了,现在开始整理流API。首先应该如何定义流API中的“流”这个概念呢?记住:流是数据的渠道。 高中的时候我们就学过电流,水流,磁场流,然后java中还有io流,那么这个流... 阅读全文
posted @ 2015-11-09 16:20 LinkinPark 阅读(275) 评论(0) 推荐(0)
摘要: OptionalInt,OptionalDouble,OptionalLong类的工作方式与Optional类十分类似,只不过他们是专门操作int,都变了,long类型的值而设计的。因此,他们分别定义了getAsDouble(),getAsInt(),getAsLong()方法,而不是get()... 阅读全文
posted @ 2015-10-31 14:17 LinkinPark 阅读(1477) 评论(0) 推荐(0)
摘要: 身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题,前面一篇博客我也整理到了Null Objec... 阅读全文
posted @ 2015-10-30 18:08 LinkinPark 阅读(639) 评论(0) 推荐(0)
摘要: 整理这篇博客是因为现在在整理java8中的optional,所以觉得很有必要整理下Null Object模式。java.lang.NullPointerException,只要敢自称Java程序员,那对这个异常就再熟悉不过了。为了防止抛出这个异常,我们经常会写出这样的代码: Person per... 阅读全文
posted @ 2015-10-30 16:12 LinkinPark 阅读(431) 评论(0) 推荐(0)
摘要: 关于包装类和基本类型的文章我前面已经整理过了,这里大致罗列下重点。我们主要是想研究下包装类的缓存。 1,自动装箱和自动拆箱 java1.5之后就提供了自动装箱和自动拆箱的功能,当然我们也可以手动来装箱和拆箱。 基本类型-->包装类对象:new WrapperClass(primitive),... 阅读全文
posted @ 2015-10-27 17:22 LinkinPark 阅读(1567) 评论(0) 推荐(0)
摘要: 从前面的整理中我们看出了,Lambda表达式其实是匿名内部类的一种简化,因此它可以部分取代匿名内部类。 1,Lambda表达式与匿名内部类存在如下相同点: 1),Lambda表达式与匿名内部类一样,都可以直接访问“effectively final”的局部变量,以及外部类的成员变量 2),L... 阅读全文
posted @ 2015-10-27 16:00 LinkinPark 阅读(1166) 评论(0) 推荐(0)
摘要: 关于接口,每天的编码都在写,就不多说了。这里对比下接口,抽象类,类3者的关系: 1),接口是一种规范,就是告诉外界这个东东可以做什么。 2),抽象类是一种模板,就是告诉外界这个东西的一部分公共功能。 3),类和上面的接口,抽象类最大的区别就是类可以维护状态信息。 在以前的接口中 1,没有构... 阅读全文
posted @ 2015-10-27 10:54 LinkinPark 阅读(2262) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页