实体类
/**
* @Author 王文龙
* @Date 2019-10-24 17:44
*/
public class StreamTest {
private Integer id;
private Integer age;
private String name;
public StreamTest() {
}
public StreamTest(Integer id, Integer age, String name) {
this.id = id;
this.age = age;
this.name = name;
}
// 省略 getting,setting方法
}
测试
public static void main(String[] args) throws ParseException {
List<StreamTest> list = new ArrayList<>();
StreamTest object = new StreamTest(1,25,"尚佳鹏");
StreamTest object2 = new StreamTest(3,25,"李鹏");
StreamTest object1 = new StreamTest(2,24,"标哥");
StreamTest object3 = new StreamTest(4,18,"姚孟");
list.add(object);
list.add(object1);
list.add(object2);
list.add(object3);
System.err.println("1.不做任何处理的输出");
for (StreamTest streamTest : list) {
System.out.println(streamTest);
}
System.out.println("=====================================");
System.out.println("2.倒序后的输出");
//利用Stream流对集合数据进行倒序排序
Collections.sort(list,(a,b) -> b.getId().compareTo(a.getId()));
for (StreamTest streamTest : list) {
System.err.println(streamTest);
}
}
控制台打印结果
1.不做任何处理的输出
StreamTest{id=1, age=25, name='尚佳鹏'}
StreamTest{id=2, age=24, name='标哥'}
StreamTest{id=3, age=25, name='李鹏'}
StreamTest{id=4, age=18, name='姚孟'}
=====================================
2.按id倒序后的输出
StreamTest{id=4, age=18, name='姚孟'}
StreamTest{id=3, age=25, name='李鹏'}
StreamTest{id=2, age=24, name='标哥'}
StreamTest{id=1, age=25, name='尚佳鹏'}
注:
因为List集合是有序可重复的,默认的排序是正序,所以这里就不在演示正序的写法,如果是利用Set容器装数据的话,要对数据进行正序排序,只需要把Collections.sort(list,(a,b) -> b.getId().compareTo(a.getId()));中的b.getId()和a.getId()位置对调即可,排序不光应用id,也可应用于其他整型中