TreeSet 使用匿名类添加Student实体类数据 唯一按升序排序

news/2024/7/8 11:02:46

student实体类代码如下所示:

package com.test.Test10;


public class StudentNiMingLei{
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public StudentNiMingLei(int age, String name) {
        this.age = age;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }


}


测试类代码如下所示:
package com.test.Test10;

import java.util.Comparator;
import java.util.TreeSet;

public class Test03NiMingLei {
    public static void main(String[] args) {
        //创建一个TreeSet
        //匿名内部类
  
        TreeSet<StudentNiMingLei> ts = new TreeSet<>(new Comparator<StudentNiMingLei>() {
            @Override
            public int compare(StudentNiMingLei o1, StudentNiMingLei o2) {
                return o1.getName().compareTo(o2.getName());
            }
        }); //一旦指定外部比较器,那么就会按照外部比较器来比较
        ts.add(new StudentNiMingLei(10,"elili"));
        ts.add(new StudentNiMingLei(8,"blili"));
        ts.add(new StudentNiMingLei(4,"alili"));
        ts.add(new StudentNiMingLei(9,"clili"));
        ts.add(new StudentNiMingLei(10,"elili"));
        ts.add(new StudentNiMingLei(1,"dlili"));
        System.out.println(ts.size()); //放了6个数据,出来了5个,重复的删除了
        System.out.println(ts);        //[Student{age=4, name='alili'}, Student{age=8, name='blili'}, Student{age=9, name='clili'}, Student{age=1, name='dlili'}, Student{age=10, name='elili'}]  按照name值的升序进行排列了
    }
}

http://lihuaxi.xjx100.cn/news/1208436.html

相关文章

【Linux】Linux编译器 gcc/g++的使用初识动静态链接库

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

【Greendao】RxQuery的释放,避免内存泄漏

GreenDAO 3.0.0 以及之后的版本中&#xff0c;RxQuery 的释放需要注意以下几点&#xff1a; 取消订阅&#xff1a;为避免内存泄漏&#xff0c;RxQuery 需要在不需要的时候进行取消订阅&#xff08;unsubscrible&#xff09;&#xff0c;例如在 Activity 或 Fragment 的 onDestr…

附录2-小程序常用API

API有三大类&#xff0c;事件监听API&#xff0c;同步API&#xff0c;异步API 事件监听API都以on开头&#xff0c;比如wx.onWindowResize()监听窗口尺寸变化事件 同步API都以Sync结尾&#xff0c;同步API可以通过函数返回值直接获取&#xff0c;执行出错会抛出异常。比如 wx.…

c# 从零到精通 switch 语句

c# 从零到精通 switch 语句 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test03 { class Program { static void Main(string[] args) { string MyStr “用一生下载你”; //声明一个字符串变量MyStr并初始化 switch (…

视频采集到录制 - MP4生成

录制最终格式是MP4&#xff0c;视频流是采用H264编码流&#xff0c;音频是aac编码流 最终需要将两个流合并到一个文件里 采用的方案&#xff0c;是通过mp4v2的库&#xff0c;进行合并 原理很简单&#xff1a; 先创建文件&#xff0c;输入编码参数 需要创建视频流初始 也需要…

如何将坐标数据(.xls)转换为矢量范围(.shp)

在工作中&#xff0c;我们经常会遇到要将坐标数据&#xff08;.xls&#xff09;转换为矢量范围&#xff08;.shp&#xff09;的情况&#xff0c;那该如何使用ArcMap完成这项工作呢 / 『思路&#xff1a;使用ArcMap将Excel数据以 XY 数据的方式导入&#xff0c;导出点要素&#…

显存容量一键翻倍性能暴涨,N卡遗留漏洞被破解了

2K、4K 高分辨率的普及&#xff0c;加上游戏特效进步复苏&#xff0c;显存容量的需求也提升了一个台阶。 经过测试&#xff0c;某些游戏最大显存占用已经超出 12GB &#xff0c;即便 1080P 也占用不低。 再到生产力、AI &#xff0c;显存就更容易爆炸。 显存这玩意不像内存可以…

12.页面导航

页面导航 是 页面之间的相互跳转&#xff0c;我们在浏览器中可以使用 a链接 与 location.href 进行跳转 在小程序中可以使用 声明式导航(navigator标签&#xff0c;类似于a标签) 与 编程式导航(使用小程序导航API&#xff0c;类似于location.href) 来跳转页面 目录 1 声明式…