JAVA复习5(TreeSet)
Set 接口
特点: 最大的特点 就是集合中的元素 不可重复 其也是Collection接口的子接口 , Set本身也是一个接口,同样不能直接使用,需要实例化该接口的实现类 Set接口下面的实现类:
常用
1 TreeSet 有序 ,不可重复
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable |
常用方法 来自Collection
范例: 观察TreeSet子类的使用
public static void main(String[] args) { Set<String> all=new TreeSet<>(); all.add("B"); all.add("C"); all.add("A"); all.add("C"); //重复元素 for(String str:all) { System.out.println(str); } } |
通过观察以上代码发现,TreeSet 存放的数据有以下两个特点:
1 有序 为什么有序?
TreeSet的排序是通过compreable 接口中的compareTo方法完成的 该方法返回 3个取值
分别为: 1 升序 - 1 降序 0 重复元素的判断
范例: 使用自定义类完成TreeSet
public static void main(String[] args) { Set<Person> all=new TreeSet<>(); all.add(new Person("张三",32)); all.add(new Person("李四",20)); all.add(new Person("张三",32)); all.add(new Person("隔壁老王",89)); //重复元素 for(Person per:all) { System.out.println(per); } } |
出错了以下的错误:
Exception in thread "main" java.lang.ClassCastException: org.list.Person cannot be cast to java.lang.Comparable at java.util.TreeMap.compare(Unknown Source) at java.util.TreeMap.put(Unknown Source) at java.util.TreeSet.add(Unknown Source) at org.set.TreeSetDemo.main(TreeSetDemo.java:15) |
说明在TreeSet中进行保存的时候,约定存储的类型必须实现一个接口,而这个接口就是comparable接口,如果没有这个接口则不能实现排序功能
范例:实现compareTo方法
@Override public int compareTo(Person o) { // TODO Auto-generated method stub if(this.age>o.age) { return 1; }else if(this.age<o.age) { return -1; } return 0; } |
2 不可重复
重复元素的区分 在TreeSet中是依靠compareTo方法是否返回0来判断的
JAVA复习5(TreeSet)相关推荐
- 中国海洋大学-信息系统开发(Java)复习
Java复习 OUC_Shizue 1 Java编译器和执行器 Java编译器和执行器是Java语言的两个核心组件,分别用于将Java源代码编译成Java字节码文件和运行Java字节码文件. Java ...
- Java复习面试知识点
Java复习面试知识点 前言: 简要的记录一下学习到的东西,仅供自己查阅和复习方便.希望该文章能对你有帮助,文章学习自博客和b站UP主的教程 集合: 集合简介: Java标准库自带的java.util ...
- 合肥师范学院计算机与技术,合肥师范学院计算机科学与技术系JAVA复习提纲
合肥师范学院计算机科学与技术系JAVA复习提纲 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 一. 选择题(10题,20分)二. 填空 ...
- 调整心态,java复习要点总结。
各位好,博主认为调整好心态是一切事情开始的良好基础.无论做任何事情,没有一个沉淀的情绪积累,都不能做到很成功.当完全融入一件事情的时候,学习效率是最高的.所以朋友,请您一定放松心态,不要有紧张的情绪. ...
- Java深入了解TreeSet,和迭代器遍历方法
Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...
- Java 集合之TreeSet 自定义类 比较器
Java 集合之TreeSet 基于 TreeMap 的 NavigableSet 实现. 使用元素的自然顺序进行排序,或者通过在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造 ...
- Java复习之抽象类和接口
Java复习之抽象类和接口 Java复习之抽象类和接口 什么是抽象类和接口 抽象类与接口的区别 什么情况下使用抽象类或接口 一个demo引起来的对于java方法区堆栈的研究 首先我们需要明白抽象类与接 ...
- Java复习打卡day40
Java复习打卡day40 XML DOM 介绍 实现节点的遍历 实现节点的删除 属性的操作 创建节点 节点的复制 节点的替换 select对象 table对象 XML DOM 介绍 1.基本介绍: ...
- java复习第3天---3.1---final关键字、权限修饰符
java复习第3天---3.1---final关键字.权限修饰符 目录 文章目录 1.final 关键字 1.1.修饰类 1.2.修饰成员方法 1.3.修饰成员变量 1.4.修饰局部变量 2.权限修饰 ...
- Java复习打卡day30
Java复习打卡day30 前置 前置导学 HTML语言 HTML介绍 HTML语言的基础语法 常见标签 文本标签 格式化标签 图像标签 超链接标签 表格标签 表单标签 前置 前面我们主要讲述了Jav ...
最新文章
- 深入理解JavaScript定时机制
- 网站SEO更新时选择适当的时间点有什么好处?
- Android SDK下载失败的解决方法
- 【选摘】为什么说SAP中没有在制品的盘点
- android studio 实用指南,《Android Studio实用指南》4.27 使用演示模式(示例代码)
- Tampermonkey油猴插件各种浏览器下载教程【chrome、firefox、Edge、360、QQ、Safari等】
- 汇编语言不带冒号标号的用法
- 引用参数与引用返回值
- 全局变量及其含义php,php Server:php超全局变量Server的含义与用法示例
- zedboard板子上呼吸灯的实现(第一版)仿真代码的实现
- Java中判断素数的五种方法
- python 微服务 网关_关于API微服务网关
- 如何在liunx上搭建服务器资源监控平台
- 阿里飞冰的介绍以及使用
- java 注册探探账号_零基础手把手教你开发探探类社交软件Tinder
- ${}和`${}`的用法
- HP ProBook 4421s配置完成无线网卡
- 服务器风扇插头型号,服务器风扇专场 台达 12V 12CM 4.8A怪兽来袭只要15元
- 雅虎的无奈,将关闭地图、Pipes、GeoPlanet和PlaceSpotter APIs、一些区域网站
- 洛咕 P2403 [SDOI2010]所驼门王的宝藏
热门文章
- jMeter 打开项目时遇到错误消息 CannotResolveClassException: com.blazemeter.jmeter.RandomCSVDataSetConfig
- 内容分发网络 CDN 是如何提高网页加载时间的?
- Eclipse里如果看不到Attach Source按钮应该怎么办
- 一段简单的JavaScript代码,实现在同一网页输出多个图标的功能
- 重构老系统遗留代码的一些方法学习笔记
- OPA 22 - sinor fake xml http request
- how can a model method trigger binding value refreshed
- SAP UI5 how the ui library theme parameter is loaded
- filter in Fiori HANA live report
- 使用Java程序通过http post访问Application server