TreeSet的使用和比较器排序练习

【菜鸟的爬坑日记】使用TreeSet遇到的对象丢失的问题 做编程题时,需要对输入的对象进行排序,我就直接想到TreeSet这个类,代码逻辑如下: public class TestTreeSet { public static void main(String[] args) { TreeSet<SortedModel> set=new TreeSet<>((a,b)->a.count-b.cou... 阅读详情

第一题:

1.写一个方法,要求能够向任何集合中,添加任意多个元素

2.调用这个方法,往ArrayList集合中添加3个String类型元素,并打印集合中的元素

3.调用这个方法,往LinkedList集合中添加3个Integer元素,并打印集合中的元素

4.调用这个方法,往TreeSet集合中添加3个Student元素,并打印集合中的元素

package com.itheima.Demo.ZuoYe;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.TreeSet;

public class No_one {
    public static void main(String[] args) {
        methed(new ArrayList<String>() ,"w ","ai","zhongguo");
        methed(new LinkedList<Integer>(),1,2,3,4,5,6,7);
        methed(new TreeSet<Student>(),new Student("zhangsan",23),new Student("lisi",24),new Student("wangwu",30));

    }
    public static <T>void methed(Collection<T> list,T...list1){
        for (int i = 0; i < list1.length; i++) {
            System.out.println(list1[i]);
        }
    }
}

第二题:

1.创建一个员工类Employee,有姓名name、年龄age、工资salary属性

2.创建3个员工对象,添加到TreeSet集合中

3.要求按照员工的工资排序;如果工资相同,按照年龄排序;如果年龄也相同,再按照姓名的字典顺序排序;

package com.itheima.Demo.ZuoYe;

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

public class No_two {
    public static void main(String[] args) {
        TreeSet<Employee> ts=new TreeSet<>(new Comparator<Employee>() {
            @Override
            public int compare(Employee o1, Employee o2) {
                int i = o1.getSalary() - o2.getSalary();
               i = i==0?o1.getAge()-o2.getAge():i;
              i = i==0?o1.getName().compareTo(o2.getName()):i;
                return i;
            }
        });
        ts.add(new Employee("zhangsan ",24,4000));
        ts.add(new Employee("lisi ",22,5000));
        ts.add(new Employee("wangwu ",24,4000));
        ts.add(new Employee("zhaoliu ",21,4000));
        System.out.println(ts);
    }
}

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码) 本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。 阅读详情

相关推荐

密评实战:应用层数据安全防护全解析

本文从实战角度深度解析三级信息系统密评中应用层数据安全防护的核心要点。围绕身份鉴别、访问控制、数据传输与存储安全、不可否认性等关键环节,结合国密算法(SM2/SM3/SM4)与智能密码钥匙等合规技术,提供了从代码审查、日志分析到流量验证的全链路排查方法,助力构建真正符合密评标准的数据安全防线。

weixin_29291185的博客 460

TreeSet课后练习

TreeSet底层是红黑树,存放时有顺序。下面是两个小练习。 package exercise; /** * @author * @create 2022-04-20-18:08 */ public class MyDate { private int year; private int month; private int day; public MyDate() { } public MyDate(int year, int month,

m0_55895641的博客 821

WIFI CSI动作识别数据集全解析:从数据采集到深度学习应用

本文全面解析了利用商用Wi-Fi设备的信道状态信息进行动作识别的完整流程。文章以经典WiSA数据集为例,深入剖析了CSI数据的采集原理、结构特点,并详细阐述了从原始数据预处理、特征工程到深度学习模型(如CNN-LSTM融合架构)构建与优化的关键技术,旨在为研究者提供从数据到应用的全链路实战指南。

r2s3t4的博客 281

Java集合框架篇-63-TreeSet集合练习题

       这篇,我们通过前面学习的TreeSet集合和比较器的知识,我们来做几个练习题。在完成练习过程中,我们重点放在问题分析这个步骤上面,只有分析的思路的正确性,才能写出正确的代码,完成编程练习题。第一题在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典排序)还不能去除重复的元素输出。分析过程:1)定义一个List集合,并存储重复的字符串元素2)定义方法,对其排序,保留重复...

Anthony_tester的博客 2858

思科模拟器Cisco Packet Tracer交换机的管理配置

一、交换机的管理方式:带内管理和带外管理 通过交换机的 Console 端口管理交换机属于带外管理;这种管理方式不占用交换机的网络端口,第一次配置交换机必须利用 Console 端口进行配置。 通过 Telnet、拨号等方式属于带内管理。 二、控制台配置思科交换机 1.新建拓扑图 新建拓扑,选择console线连接交换机和PC,一端接交换机的console口,一端接PC的RS 232 口(...

qq_37992321的博客 2万+

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex)

文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。

weixin_47365903的博客 1万+

TreeSet 练习题

TreeSet 练习题 package com.sq.exer; /* MyDate 类包含: private 成员变量 year,month,day;并未每一个属性定义:getter,setter 方法; */ public class MyDate implements Comparable{ private int year; private int month; private int day; public MyDate() { }

sunqianLOL的博客 367

JSP期末考试复习习题及答案

以下习题是对于平时课堂小测的整理,如有错误敬请指正! 欢迎一起交流~ 预祝各位小伙伴们考试顺利! Test1 一. 单选题 – 1.(单选题)当用户请求jsp页面时,JSP引擎就会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是() A. 发送一个JSP源文件到客户端 B. 发送一个Java文件到客户端 C. 发送一个HTML页面到客户端 D. 什么都不做 – 2.(单选题)下列动态网页和静态网页的根本区别描述错误的是( D) A. 静态网页服务器端返回的HTML文件是事先存储好的 B. 动.

技术小白 2万+

【Java自用】集合练习题:TreeSet的自然排序与定制排序

定义一个 Employee 类。 该类包含:private 成员变量 name,age,birthday,其中 birthday 为MyDate 类的对象;并为每一个属性定义 getter, setter 方法;并重写 toString 方法输出 name, age, birthday。 MyDate 类包含: private 成员变量 year,month,day;并为每一个属性定义 getter, setter 方法; 创建该类的 5 个对象,并把这些对象放入 TreeSet 集合中 分别按以下两种方式

爱写bug的王六六 579

monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序

【代码】monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序。

生信小博士的博客 1049

验证 helm Chart 的正确性

验证 helm Chart 的正确性

小橙子的笔记屋 281

创建一个TreeSet对象,并自其中添加一些员工对象(Employee),其姓名和工资分别为:张三 8000,李四 6000,王五 5600,马六 7500,最后按照工资的多少进行降序输出

package kehouti; import java.util.Set; import java.util.TreeSet; import java.util.Iterator; public class Employee implements Comparable { private String name; private double salary; public E...

ZJC'博客 2131

UWB 多传感器通信的纳秒无线位置和时钟同步方法

利用UWB高精度的特点,实现多节点下的无线时钟同步和定位。通过优化硬件架构,减少不确定延迟的影响,系统可以提供纳秒级时钟同步消息

DT程序员的博客 1325

(68)TreeSet练习:两种排序方式:自然排序(实现comparable接口)、比较器

①TreeSet排序的第一种方式:让元素自身具有比较性,元素需要实现Comarable接口,覆盖compareTo方法。这种方式称为元素的自然顺序或者叫做默认顺序。 ② TreeSet的第二种排序方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的,这就需要让集合自身具备比较性。在集合初始化时,就有了比较方式。

FixedStar 的博客 1547

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

黑马程序员_TreeSet排序说明

-------android培训、java培训、期待与您交流! ---------- //方法一: package com.itheima; import java.util.Iterator; import java.util.TreeSet; public class TreeSetDemo { /** * Set集合是元素不重复的无序集合 * 子类TreeSet,为了判断元

Xucker的专栏 461

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

自然排序VS比较器排序

本文深入探讨了Java中TreeSet的两种排序方式:自然排序和比较器排序。自然排序通过实现Comparable接口并重写compareTo()方法实现,适用于自定义类排序;比较器排序则通过Comparator接口实现,在不修改源代码的情况下支持多种排序规则。文章详细演示了两种排序方式在Integer、String和自定义类中的应用,对比了两者的特点(自然排序代码复用但规则单一,比较器排序灵活但需重复定义),并提供了三个典型练习及其完整解答。最后总结了不同集合类的排序特性,帮助开发者根据实际需求选择合适的集

倾蝶羽裳,漫雨疏狂 1667

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java集合(四)--treeset/treemap/章节练习题目/去重原理的解读和应用

1.treeset结构 2.treemap结构 3.集合去重辨析总结 4.对于arraylist的练习题目 5.对于HashMap的练习题目 6.第三点的去重运用 7.HashSe练习题目

大学成长道路上的探索经历与点滴思考,与君共勉,共筑成长。 921

javaSE (二十五)TreeSet原理、自然排序和选择器排序的比较、TreeSet几个练习

TreeSet和HashSet不同,底层是二叉树,可以保证输出有序 二叉树,小的存储在左边(负数),大的在右边(正数),相等就不存 返回0,集合中只有一个元素(保证输出唯一,比如属性值相同的对象,我就返回0) 返回-1,集合倒叙 返回1,怎么存怎么取(和根元素比较) 两种方法保证输出有序: 自然排序:用于自己创建的类的时候,让类implements Comparable,然后重写compar...

PizAn的博客 599

Java基础视频教程第15天_集合之TreeSet、泛型

一、集合框架 —— TreeSet  Set: 无序,不可重复 -HashSet: 数据结构是哈希表,线程非同步;保证元素唯一性的原理:判断元素的hasCode值是否相同,如果相同,再判断元素的equals方法是否为true。 -TreeSet: 可以对 Set 集合中的元素进行排

yc081216的专栏 791

Java-集合框架-TreeSet

1. TreeSet collection下面有: List:元素的有序的,元素可以重复,因为该集合体系有索引 ______ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快,但是增删速度慢 ______LinkedList:底层的数据结构使用的是链表结构。特点:查询速度慢,但是增删速度快 ______Vector:底层的数据结构使用的是数组结构,线程同步,被ArrayList...

lwycc2333的博客 267

Java集合(6)——TreeSet

TreeSet 如果元素具备自然顺序的特性,那么就按照元素自然顺序的特性进行排序存储。 public class Demo1 { public static void main(String[] args) { TreeSet tree1 = new TreeSet(); tree1.add(1); tree1.add(10); tree1.add(7); tree1.add(19); tree1.add(9); System.out.println("tree1:"+t

qq_32559349的博客 391

集合类

今天看到集中集合的排序方法,感觉自己以前写的代码还有很大提升的余地,很多代码都只是实现了功能,但没有做到最优化。以后得严格要求自己,力求每一段功能都能做到最优化。

zhao9tian的专栏 646

TreeSet,Comparable接口,Comparator的实现类对象

TreeSet,Comparable接口,Comparator的实现类对象 一、Collection集合总结 Collection |–List 有序,可重复 |–ArrayList 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高 |–Vector 底层数据结构是数组,查询快,增删慢。 线程安全,效率低 |–LinkedList 底层数据结构是链表,查询慢,增删快。 线程不安全,效率高...

orange bob的博客 558

JavaSE学习笔记——2019/1/13(上午)

HashSet 存储自定义对象,保证元素的唯一性,要求两个对象的成员变量值相同,则为同一个元素 HashSet底层依赖的是hashCode()和equals()方法,方法没有重写,所以默认使用的事Object类,这时候哈希值是想通过的,执行添加。 执行顺序:首先比较哈希值是否相同,相同继续执行equal()方法,返回false才添加元素,不同就直接把元素添加到集合 哈希表:是一个元素为链表...

TangXiaoPang的博客 256

day22-集合(泛型、Set、HashSet、LinkedHashSet、TreeSet)

泛型的介绍​ 泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换泛型的定义格式: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如:: 指定多种类型的格式,多种类型之间用逗号隔开.例如: 不可以存储重复元素没有索引,不能使用普通for循环遍历不可以存储重复元素没有索引可以将元素按照规则进行排序。

u012011912的博客 102

Java day21 set接口 容器----------单例集合

1.TreeSet方法(Users类)

weixin_48877743的博客 164
上一篇: 泛型、Set、二叉树
下一篇: 红黑树、HashSet、Map
Figure_TheKeyboard
博客等级 码龄5年 6粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值