Java8

Java8

java8的特性:

Java8

java8之前HashMap高效的原因:

                                       1.非一一比较式的数据结构 ,采用hashcode计算存储位置

                                       2.hashcode一致碰撞成链表

                                       3.Hash扩容值是0.75/1,链表式值重新移入到新的位置


java8将hashMap/hashSet中添加了红黑树结构,从而效率更高:

数据--链表--红黑树(新)

碰撞的个数大于 8,总容量大于64,转变红黑树,减少碰撞时比较的次数

----------------java8核心特性是Lambda表达式和Stream API

Stream ApI减少了sql的复杂操作

----------------Lambda表达式(让代码写的更少)------------------

可以将Lambda表达式理解为一段可以传递的代码

下面的java7和java8代码可以比较体会下

实例1:

Java8

Lambda表达式分为俩部分

Java8

实例如下:

Java8Java8

--------------------------Lambda表达式类型推断-----------------------

实例如下:

Java8


---------------------------方法引用和构造器引用-----------------------------

Java8

Java8

Java8


------------------------Stream API----------------------------

Java8

Java8

Java8

创建的流有俩种:

1.顺序流(stream)

2.并行流(parallelStream)

体会:在大数据中有批处理和流处理,也叫离线和实时处理,java8将大数据的俩大主要数据处理方式进行了集成,从而适应了大数据的趋势

数组创建流:通过Arrays的静态方法stream

无限流:

Stream.itrate()和Stream.generate();

------------------------Stream的中间操作------------------------

Java8

Java8

Java8

------------------------Stream的终止操作------------------------

Java8

Java8

Java8

Java8

Java8

-------------------------------并行流和串行流------------------------------

Java8