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

java tree的使用_Java TreeSet的使用

1、TreeSe自带排序的set,没有重复元素。

2、TreeSet 如果构造函数中没有使用比较器,那在装载的对象类中要实现Comparable 接口。

3、TreeSet 使用初始化比较器的方式。

试例代码:

public class Demo {

public static void main(String[] args) {

//1、TreeSe自带排序的set,没有重复元素

TreeSet setStr=new TreeSet();

setStr.add("E");

setStr.add("D");

setStr.add("C");

setStr.add("A");

setStr.add("B");

setStr.add("B");

System.out.println(setStr.toString());

System.out.println("-------------遍历方式:1、使用迭代器遍历------------");

Iterator ite = setStr.iterator();

while(ite.hasNext()) {

System.out.println(ite.next());

}

System.out.println("-------------遍历方式:2、使用数组遍历------------");

Object[] objs = setStr.toArray();

for(int i=0;i

System.out.println(objs[i]);

}

//2、TreeSet 如果构造函数中没有使用比较器,那在装载的对象类中要实现Comparable 接口

System.out.println("-------------TreeSet 如果构造函数中没有使用比较器,那在装载的对象类中要实现Comparable 接口------------");

TreeSet setPerson=new TreeSet();

setPerson.add(new person("张三",20));

setPerson.add(new person("李四",19));

setPerson.add(new person("王五",32));

System.out.println(setPerson.toString());

//3、TreeSet 使用初始化比较器的方式

System.out.println("-------------TreeSet在初始化时使用构造器------------");

TreeSet set=new TreeSet(new BookComparator());

set.add(new book("流浪地球",100));

set.add(new book("三体",90));

set.add(new book("大秦帝国",110));

System.out.println(set.toString());

System.out.println("-------------遍历方式:1、使用迭代器遍历------------");

Iterator iteBook = set.iterator();

while(iteBook.hasNext()) {

System.out.println(iteBook.next());

}

System.out.println("-------------遍历方式:2、使用数组遍历------------");

Object[] objsBook = set.toArray();

for(int i=0;i

System.out.println(objsBook[i]);

}

System.out.println("-------------遍历方式:3、使用foreach方式------------");

for(book b :set) {

System.out.println(b);

}

} }

class person implements Comparable{

String name;  int age;

person(String name,int age){

this.name=name;   this.age=age;

}

@Override

public String toString() {

return "姓名:"+this.name+" 年龄:"+this.age;

}

@Override

public int compareTo(person o) {

if(o.age>this.age) {

return 1;

} else if(o.age

return -1;

}

return 0;

} }

class book {

String name;  double price;

book(String name,double price){

this.name=name;   this.price=price;

}

@Override

public String toString() {

return "书名:"+this.name+" 价格:"+this.price;

}  }

class BookComparator implements Comparator{

@Override

public int compare(book o1, book o2) {

if(o1.price>o2.price) {

return 1;

} else if(o1.price < o2.price){

return -1;

}   return 0;

}

}

相关文章:

  • java矩形_JAVA实现矩形(长方形)的周长面积计算
  • phymeleaf 除取整_【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h...
  • python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降
  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • java开发微信设计论文_集客微信公众号: 本科毕业设计:基于WxJava框架的集客微信公众号的设计与实现...
  • java 判断是不是英文怎么说_java判断一个字符串是中文还是英文
  • linux+mysql运算符_MySQL 运算符
  • saxreader java_SAXReader saxReader = new SAXReader();来解析xml文件
  • 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  • JAVA循环读取菜单_java循环菜单
  • mysql一条sql的执行过程_【MySQL深入】一条SQL的执行过程
  • java高级编程英语单词_Java高级编程
  • 强对象 java_java对象的强引用,软引用,弱引用和虚引用
  • grafana mysql插件_grafana插件动态数据
  • Create React App 使用
  • github指令
  • HTML-表单
  • k8s 面向应用开发者的基础命令
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • python大佬养成计划----difflib模块
  • 技术胖1-4季视频复习— (看视频笔记)
  • 前端学习笔记之观察者模式
  • 写代码的正确姿势
  • !!java web学习笔记(一到五)
  • #pragma once
  • #QT(TCP网络编程-服务端)
  • #单片机(TB6600驱动42步进电机)
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (2.2w字)前端单元测试之Jest详解篇
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (翻译)terry crowley: 写给程序员
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (十)T检验-第一部分
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET Core跨平台微服务学习资源
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net Winform开发笔记(一)
  • .NET的微型Web框架 Nancy
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成
  • [C#]C#学习笔记-CIL和动态程序集
  • [C++]C++类基本语法
  • [C++]类和对象【下】
  • [CISCN2019 华东南赛区]Web4
  • [HCTF 2018]WarmUp (代码审计)
  • [IOI2018] werewolf 狼人
  • [Java] 什么是IoC?什么是DI?它们的区别是什么?
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
  • [Java并发编程实战] 共享对象之可见性