正序
排序条件:Comparator.comparing(MsgVo::getNo)
Stream字符串按数字排序:Comparator.comparingInt(Integer::parseInt)
MsgVo msgVo1 = new MsgVo();
MsgVo msgVo2 = new MsgVo();
MsgVo msgVo3 = new MsgVo();
MsgVo msgVo4 = new MsgVo();
MsgVo msgVo5 = new MsgVo();
msgVo1.setNo("1");
msgVo1.setMsg("aaaa");
msgVo2.setNo("7");
msgVo2.setMsg("bbbb");
msgVo3.setNo("4");
msgVo3.setMsg("cccc");
msgVo4.setNo("3");
msgVo4.setMsg("dddd");
msgVo5.setNo("4");
msgVo5.setMsg("eeee");
List<MsgVo> msgList = new ArrayList<>();
msgList.add(msgVo1);
msgList.add(msgVo2);
msgList.add(msgVo3);
msgList.add(msgVo4);
msgList.add(msgVo5);
System.out.println("之前 = " + msgList);
msgList = msgList.stream().sorted(Comparator.comparing(MsgVo::getNo, Comparator.comparingInt(Integer::parseInt))).collect(Collectors.toList());
System.out.println("之后 = " + msgList);
结果打印:
之前 = [MsgVo(no=1, msg=aaaa), MsgVo(no=7, msg=bbbb), MsgVo(no=4, msg=cccc), MsgVo(no=3, msg=dddd), MsgVo(no=4, msg=eeee)]
之后 = [MsgVo(no=1, msg=aaaa), MsgVo(no=3, msg=dddd), MsgVo(no=4, msg=cccc), MsgVo(no=4, msg=eeee), MsgVo(no=7, msg=bbbb)]
倒序
差别在于:reversed()
MsgVo msgVo1 = new MsgVo();
MsgVo msgVo2 = new MsgVo();
MsgVo msgVo3 = new MsgVo();
MsgVo msgVo4 = new MsgVo();
MsgVo msgVo5 = new MsgVo();
msgVo1.setNo("1");
msgVo1.setMsg("aaaa");
msgVo2.setNo("7");
msgVo2.setMsg("bbbb");
msgVo3.setNo("4");
msgVo3.setMsg("cccc");
msgVo4.setNo("3");
msgVo4.setMsg("dddd");
msgVo5.setNo("4");
msgVo5.setMsg("eeee");
List<MsgVo> msgList = new ArrayList<>();
msgList.add(msgVo1);
msgList.add(msgVo2);
msgList.add(msgVo3);
msgList.add(msgVo4);
msgList.add(msgVo5);
System.out.println("之前 = " + msgList);
msgList = msgList.stream().sorted(Comparator.comparing(MsgVo::getNo, Comparator.comparingInt(Integer::parseInt)).reversed()).collect(Collectors.toList());
System.out.println("之后 = " + msgList);
结果打印:
之前 = [MsgVo(no=1, msg=aaaa), MsgVo(no=7, msg=bbbb), MsgVo(no=4, msg=cccc), MsgVo(no=3, msg=dddd), MsgVo(no=4, msg=eeee)]
之后 = [MsgVo(no=7, msg=bbbb), MsgVo(no=4, msg=cccc), MsgVo(no=4, msg=eeee), MsgVo(no=3, msg=dddd), MsgVo(no=1, msg=aaaa)]