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())); |
Java对数组和列表的排序1.8新特性的更多相关文章
- Java JDK1.5、1.6、1.7新特性整理(转)
原文链接:http://www.cnblogs.com/tony-yang-flutter/p/3503935.html 一.Java JDK1.5的新特性 1.泛型: List<String& ...
- Java JDK1.5、1.6、1.7新特性整理
转载请注明出处:http://www.cnblogs.com/tony-yang-flutter 一.Java JDK1.5的新特性 1.泛型: List<String> strs = n ...
- java学习-NIO(五)NIO学习总结以及NIO新特性介绍
我们知道是NIO是在2002年引入到J2SE 1.4里的,很多Java开发者比如我还是不知道怎么充分利用NIO,更少的人知道在Java SE 7里引入了更新的输入/输出 API(NIO.2).但是对于 ...
- 黑马程序员——JAVA基础之基本数据类型包装类和1.5JDK新特性装箱
------- android培训.java培训.期待与您交流! ---------- 基本数据类型包装类: byte Byte short Short int Integer char Charac ...
- 转:【Java并发编程】之二十三:并发新特性—信号量Semaphore(含代码)
载请注明出处:http://blog.csdn.net/ns_code/article/details/17524153 在操作系统中,信号量是个很重要的概念,它在控制进程间的协作方面有着非常重要的作 ...
- 转: 【Java并发编程】之二十一:并发新特性—阻塞队列和阻塞栈(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17511147 阻塞队列 阻塞队列是Java5并发新特性中的内容,阻塞队列的接口是Java. ...
- JAVA 中数组的几种排序方法
1.数组的冒泡排序 public void bubbleSort(int a[]) { int n = a.length; for (int i = 0; i < n - ...
- Java实现数组按数值大小排序
package shb.java.test; /** * 比较数组中元素的大小,按从大到小顺序排列. * @Package:shb.java.test * @Description: * @autho ...
- 转: 【Java并发编程】之二十:并发新特性—Lock锁和条件变量(含代码)
简单使用Lock锁 Java5中引入了新的锁机制--Java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作.Lock接 ...
随机推荐
- noi.ac-CSP模拟Day5T2 灯
算是一道思维题吧,没有什么算法在里面. 之前想的是,能走的话就尽量走远,走过去开灯然后再回去关灯,然后再走,每一段路要走3次. 然而,“能走的话就尽量走远”只是yy的一个贪心,没有任何依据.假设在中间 ...
- 小程序图片预览 wx.previewImage
list: [ 'http://img5.imgtn.bdimg.com/it/u=3300305952,1328708913&fm=26&gp=0.jpg', 'http://i ...
- [转帖]查看ubuntu 各系统的内核版本
查看ubuntu 各系统的内核版本 https://www.cnblogs.com/ranxf/p/6923311.html /etc/issue /proc/version 1.查看ubuntu版本 ...
- 在 IntelliJ IDEA 中使用 Git,太方便了!
git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也 因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切 ...
- windows 通过cmd命令行管理防火墙
(1)恢复初始防火墙设置 netsh advfirewall reset(2)关闭防火墙 netsh advfirewall set allprofiles state off(3)启用桌面防火墙 n ...
- 从window 的cmd窗口中下载linux 服务器上文件
下载linux 服务器上的文件 down.php 格式为 pscp linux服务器上用户名@linux 服务器ip 文件在windows系统上的绝对路径 如果是下载服务器上的某个目录,只要在ps ...
- java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter的解决方案
白天在实验室的电脑上的项目搭起来,晚上回到宿舍发现跑不起来了,网上查到的大多不是想要的答案. 最终的解决方案是maven clean一下再重新package.
- Codeforces 1220B. Multiplication Table
传送门 冷静分析容易发现,我们只要能确定一个数的值,所有值也就可以确定了 确定一个数的值很容易,$a_ia_j=M_{i,j},a_ia_k=M_{i,k},a_ja_k=M_{j,k}$ 然后就可以 ...
- 09.AutoMapper 之自定义类型转换器(Custom Type Converters)
https://www.jianshu.com/p/47054d92db2a 自定义类型转换器(Custom Type Converters) 有时需要完全控制一种类型到另一种类型的转换.这一般发生在 ...
- 企业面试题|最常问的MySQL面试题集合(一)
问题1:char.varchar的区别是什么?varchar是变长而char的长度是固定的.如果你的内容是固定大小的,你会得到更好的性能. 问题2: TRUNCATE和DELETE的区别是什么?DEL ...