栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java用TreeSet排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java用TreeSet排序

在TreeSet集合里添加Person对象,Person类中有两个属性,String name,int id,和int score。 要求: 1、创建TreeSet集合ts1,按照id进行升序排列 2、创建TreeSet集合ts2,按照score进行降序排序,如果成绩一样,按照id进行升序排列。

package com.test;

import lombok.Data;
import lombok.ToString;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;


public class TreeSetTest {

    @Test
    public void test() {

        List list = createData();
        System.out.println("排序前");
        list.stream().forEach(System.out::println);

        TreeSet t1 = new TreeSet<>((l, r) -> l.getId() > r.getId() ? 1 : -1);
        t1.addAll(list);

        TreeSet t2 = new TreeSet<>((l, r) ->
                l.getScore() != r.getScore()
                        ? (l.getScore() > r.getScore() ? -1 : 1)
                        : (l.getId() > r.getId() ? 1 : -1));
        t2.addAll(list);

        System.out.println("按照id进行升序排列");
        t1.stream().forEach(System.out::println);

        System.out.println("按照score进行降序排序,如果成绩一样,按照id进行升序排列");
        t2.stream().forEach(System.out::println);
    }

    public static List createData() {
        List list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            Person p = new Person();
            p.setId(i);
            p.setName("抡砖" + i + "号");
            p.setScore(107 - i);

            list.add(p);
        }

        for (int i = 10; i >= 5; i--) {
            Person p = new Person();
            p.setId(20 - i);
            p.setName("抡砖" + i + "号");
            p.setScore(100 + i);

            list.add(p);
        }

        return list;
    }

}

@Data
@ToString
class Person {
    private String name;
    private int id;
    private int score;
}

效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827862.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号