java 两种高级的排序方式

最近在处理实时数据时,总是乱序,搞很心烦,所以总结了这两种排序方式作为记录,方便以后使用:

public class Test {
    public static void main(String[] args) {

        List bodies = new ArrayList<>();
        MessageBody body = new MessageBody();
        body.setId(1);
        body.setName("小明1");
        body.setScore(2.3F);
        body.setTimeStamp(System.currentTimeMillis()+1000);



        MessageBody body0 = new MessageBody();
        body0.setId(2);
        body0.setName("小明2");
        body0.setScore(2.3F);
        body0.setTimeStamp(System.currentTimeMillis()+2000);

        MessageBody body1 = new MessageBody();
        body1.setId(3);
        body1.setName("小明3");
        body1.setScore(2.3F);
        body1.setTimeStamp(System.currentTimeMillis()+3000);

        MessageBody body2 = new MessageBody();
        body2.setId(4);
        body2.setName("小明4");
        body2.setScore(2.3F);
        body2.setTimeStamp(System.currentTimeMillis()+4000);

        MessageBody body3 = new MessageBody();
        body3.setId(5);
        body3.setName("小明5");
        body3.setScore(2.3F);
        body3.setTimeStamp(System.currentTimeMillis()+5000);

        MessageBody body4 = new MessageBody();
        body4.setId(6);
        body4.setName("小明6");
        body4.setScore(2.3F);
        body4.setTimeStamp(System.currentTimeMillis()+6000);

        MessageBody body5 = new MessageBody();
        body5.setId(7);
        body5.setName("小明7");
        body5.setScore(2.3F);
        body5.setTimeStamp(System.currentTimeMillis()+7000);

        MessageBody body6 = new MessageBody();
        body6.setId(8);
        body6.setName("小明8");
        body6.setScore(2.3F);
        body6.setTimeStamp(System.currentTimeMillis()+8000);

        MessageBody body7 = new MessageBody();
        body7.setId(9);
        body7.setName("小明9");
        body7.setScore(2.6F);
        body7.setTimeStamp(System.currentTimeMillis()+9000);
        bodies.add(body0);
        bodies.add(body);
        bodies.add(body3);
        bodies.add(body1);
        bodies.add(body2);
        bodies.add(body7);
        bodies.add(body4);
        bodies.add(body6);
        bodies.add(body5);

        System.out.println(JSONObject.toJSONString(bodies));

        System.out.println("-------------------------------------------------------------------------------");
		// 第一种排序
        List collect = bodies.stream().sorted(Comparator.comparing(MessageBody::getTimeStamp)).collect(Collectors.toList());
        System.out.println(JSONObject.toJSONString(collect));
        System.out.println("-------------------------------------------------------------------------------");
		// 第二种排序
        Collections.sort(bodies, new Comparator() {
            @Override
            public int compare(MessageBody o1, MessageBody o2) {
                Long timeStamp = o1.getTimeStamp();
                Long timeStamp1 = o2.getTimeStamp();
                return timeStamp.compareTo(timeStamp1);
            }
        });


        System.out.println(JSONObject.toJSONString(bodies));
    }
}

你可能感兴趣的:(java,开发语言)