原来 Java8 Stream 中的排序是插入排序
2016-08-25 16:09
453 查看
写了小程序,验证 Java8 Steam sort是如何实现
输出结果如下:
sort: 1; 3
sort: 5; 1
sort: 5; 3
sort: 4; 3
sort: 4; 5
sort: 2; 4
sort: 2; 3
sort: 2; 1
map: 1
forEach: 1
map: 2
forEach: 2
map: 3
forEach: 3
map: 4
forEach: 4
map: 5
forEach: 5
结论:
1) sort 完结后,管道才继续执行
2) sort是插入排序(从元素比较的顺序可以看出,插入位置通过二分搜索寻找)
package com.pnp.tryJ8col; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream.of("3", "1", "5", "4", "2") .sorted((s1, s2) -> { System.out.printf("sort: %s; %s\n", s1, s2); return s1.compareTo(s2); }) .map(s -> { System.out.println("map: " + s); return s; }) .forEach(s -> System.out.println("forEach: " + s)); } }
输出结果如下:
sort: 1; 3
sort: 5; 1
sort: 5; 3
sort: 4; 3
sort: 4; 5
sort: 2; 4
sort: 2; 3
sort: 2; 1
map: 1
forEach: 1
map: 2
forEach: 2
map: 3
forEach: 3
map: 4
forEach: 4
map: 5
forEach: 5
结论:
1) sort 完结后,管道才继续执行
2) sort是插入排序(从元素比较的顺序可以看出,插入位置通过二分搜索寻找)
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序