当前位置: 首页 > news >正文

第十二节:第六部分:集合框架:LinkedHashSet集合底层原理、TreeSet集合

LinkedHashSet底层原理

LinkedHashSet底层原理

TreeSet(尤其是自带的有序属性介绍)

TreeSet

TreeSet自定义排序规则

TreeSet自定义排序规则

TreeSet自定义排序规则,关于返回值的规则

TreeSet自定义排序规则,关于返回值的规则

代码:掌握TreeSet集合的使用。

代码一:调用有参构造器设置comparator对象来指定比较规则

Student类(学生类)

package com.itheima.day20_Collection_set;import java.util.Objects;public class Student{private String name;private int age;private double height;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}public Student() {}public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}
}

TreeSetTest 类(主程序)

package com.itheima.day20_Collection_set;import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;//目标:掌握TreeSet集合的使用。
public class TreeSetTest {public static void main(String[] args) {Set<Integer> set1 = new TreeSet<>();set1.add(6);set1.add(5);set1.add(5);set1.add(7);System.out.println(set1);// TreeSet就近选择自己自带的比较器对象进行排序Set<Student> students = new TreeSet<>(new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {//需求:按照身高升序排序return Double.compare(o1.getHeight(),o2.getHeight());}});students.add(new Student("飞鸟马时",17,165));students.add(new Student("枣伊吕波",18,155));students.add(new Student("調月莉音",18,170));System.out.println(students);}
}

结果1

代码二:实现comparable接口,重写compareTo方法来指定比较规则

Student类(学生类)

package com.itheima.day20_Collection_set;import java.util.Objects;public class Student implements Comparable<Student>{private String name;private int age;private double height;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}public Student() {}public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}@Overridepublic int compareTo(Student o) {//如果认为左边对象大于右边对象返回正整数// 1如果认为左边对象小于右边对象返回负整数// 如果认为左边对象等于右边对象返回0// 需求:按照年龄升序排序、return this.age - o.age;}
}

TreeSetTest 类(主程序)

package com.itheima.day20_Collection_set;import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;//目标:掌握TreeSet集合的使用。
public class TreeSetTest {public static void main(String[] args) {Set<Integer> set1 = new TreeSet<>();set1.add(6);set1.add(5);set1.add(5);set1.add(7);System.out.println(set1);Set<Student> students = new TreeSet<>();students.add(new Student("飞鸟马时",17,165));students.add(new Student("枣伊吕波",18,155));students.add(new Student("調月莉音",18,170));System.out.println(students);}
}

结果2

相关文章:

  • Android 中的 DataBinding 详解
  • 利用 Scrapy 构建高效网页爬虫:框架解析与实战流程
  • 谷歌地图手机版(Google maps)v11.152.0100安卓版 - 前端工具导航
  • 嵌入式笔试题+面试题
  • SKUA-GOCAD入门教程-第八节 线的创建与编辑2
  • 谷歌地图2022高清卫星地图手机版v10.38.2 安卓版 - 前端工具导航
  • 数据挖掘顶刊《IEEE Transactions on Knowledge and Data Engineering》2025年5月研究热点都有些什么?
  • 服装产品属性描述数据集(19197条),AI智能体知识库收集~
  • Hadoop 3.x 伪分布式 8088端口无法访问问题处理
  • Stone 3D新版本发布,添加玩家控制和生物模拟等组件,增强路径编辑功能,优化材质编辑
  • Could not get unknown property ‘mUser‘ for Credentials [username: null]
  • uniapp 开发企业微信小程序,如何区别生产环境和测试环境?来处理不同的服务请求
  • AWS VPC 网络详解:理解云上专属内网的关键要素
  • 机器学习:集成学习概念、分类、随机森林
  • 机器学习在多介质环境中多污染物空间预测的应用研究
  • 结合 AI 生成 mermaid、plantuml 等图表
  • EscapeX:去中心化游戏,开启极限娱乐新体验
  • 关于Tabs组件下TabPane使用v-if导致顺序错误以及页面渲染异常的解决方法
  • 机器学习——聚类算法
  • resolvers: [ElementPlusResolver()] 有什么用?
  • 网站怎么做最省钱/昆山网站建设推广
  • 阳江网雨大医院/网站seo快速优化技巧
  • 网站建设 目标/晚上国网app
  • 潍坊市网站建设/长沙网站排名推广
  • 可信网站身份验证 必须做吗/百度搜图入口
  • 生态农业网站模板/百度公司全称