Java对数组和列表的排序1.8新特性
Java对数组列表的排序
数组 |
Integer[] a = new Integer[] { 1, 2, 3, 4, 5, 6, 9, 8, 7, 4, 5, 5, 6, 6 }; Arrays.sort(a, (x, y) -> x - y); Stream.of(a).forEach(x -> System.out.print(" " + x)); |
列表 |
ArrayList<Integer> list = new ArrayList<>(); list.add(1);list.add(6); list.add(3);list.add(4); list.add(8);list.add(67); Integer[] arr = new Integer[10]; Collections.sort(list, (x, y) -> x - y); list.stream().forEach(x -> System.out.print(" " + x)); |
基本封装数据类型Integer使用Arrays.sort()排序数组并且使用lambda表达式写入一个比较器 |
|
基本封装数据类型Integer使用Collections.sort()排序列表并且使用lambda表达式写入一个比较器 |
数组 |
Student s1 = new Student(1, "小红", 12); Student s2 = new Student(3, "小张", 10); Student s3 = new Student(2, "小王", 8); Student[] students = { s1, s2, s3 }; Arrays.sort(students, (x, y) -> y.id - x.id); Stream.of(students).forEach(x -> System.out.println(" " + x.toString())); |
列表 |
ArrayList<Student> list = new ArrayList<>(); list.add(s1); list.add(s2); list.add(s3); Collections.sort(list, (x, y) -> x.id - y.id); list.stream().forEach(x -> System.out.println(" " + x.toString())); |
换成自己定义的Student对象实际操作是一样的,下面是列表嵌套一样的操作 |
|
ArrayList<ArrayList<Integer>> list = new ArrayList<>(); Collections.sort(list, (x, y) -> x.size() - y.size()); |
这里做一个Stream排序的格外增加的一个操作,意义不大,但是思维开阔了
Stream.of(students).sorted((x, y) -> y.id - x.id).forEach(x -> System.out.println(" " + x.toString())); |
list.stream().sorted((x, y) -> y.id - x.id).forEach(x -> System.out.println(" " + x.toString())); |
最新文章
- Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》
- 解密jQuery内核 样式操作
- Could not publish to the server. java.lang.NullPointerException
- Java类加载器总结
- Ubuntu Server安装图形界面全过程
- Glut 回调函数小结
- 小结 javascript中的类型检测
- WebKit笔记
- 手势交互之GestureDetector
- 371. Sum of Two Integers -- Avota
- ThinkPHP神秘应用架构扩展
- maven 集成tomcat6,tomcat7
- ThinkingInJava 学习 之 0000001 一切都是对象
- Visual Studio 2012自动添加注释(如版权信息等)
- Mock 模拟测试简介及 Mockito 使用入门
- tomcat 乱码问题
- 一道SQL题
- mysql 命令行参数说明
- 【Github教程】史上最全github使用方法:github入门到精通(转自eoeandroid.com)
- 验收测试 - WebDriver 5