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)相关推荐

  1. 中国海洋大学-信息系统开发(Java)复习

    Java复习 OUC_Shizue 1 Java编译器和执行器 Java编译器和执行器是Java语言的两个核心组件,分别用于将Java源代码编译成Java字节码文件和运行Java字节码文件. Java ...

  2. Java复习面试知识点

    Java复习面试知识点 前言: 简要的记录一下学习到的东西,仅供自己查阅和复习方便.希望该文章能对你有帮助,文章学习自博客和b站UP主的教程 集合: 集合简介: Java标准库自带的java.util ...

  3. 合肥师范学院计算机与技术,合肥师范学院计算机科学与技术系JAVA复习提纲

    合肥师范学院计算机科学与技术系JAVA复习提纲 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 一. 选择题(10题,20分)二. 填空 ...

  4. 调整心态,java复习要点总结。

    各位好,博主认为调整好心态是一切事情开始的良好基础.无论做任何事情,没有一个沉淀的情绪积累,都不能做到很成功.当完全融入一件事情的时候,学习效率是最高的.所以朋友,请您一定放松心态,不要有紧张的情绪. ...

  5. Java深入了解TreeSet,和迭代器遍历方法

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  6. Java 集合之TreeSet 自定义类 比较器

    Java 集合之TreeSet 基于 TreeMap 的 NavigableSet 实现. 使用元素的自然顺序进行排序,或者通过在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造 ...

  7. Java复习之抽象类和接口

    Java复习之抽象类和接口 Java复习之抽象类和接口 什么是抽象类和接口 抽象类与接口的区别 什么情况下使用抽象类或接口 一个demo引起来的对于java方法区堆栈的研究 首先我们需要明白抽象类与接 ...

  8. Java复习打卡day40

    Java复习打卡day40 XML DOM 介绍 实现节点的遍历 实现节点的删除 属性的操作 创建节点 节点的复制 节点的替换 select对象 table对象 XML DOM 介绍 1.基本介绍: ...

  9. java复习第3天---3.1---final关键字、权限修饰符

    java复习第3天---3.1---final关键字.权限修饰符 目录 文章目录 1.final 关键字 1.1.修饰类 1.2.修饰成员方法 1.3.修饰成员变量 1.4.修饰局部变量 2.权限修饰 ...

  10. Java复习打卡day30

    Java复习打卡day30 前置 前置导学 HTML语言 HTML介绍 HTML语言的基础语法 常见标签 文本标签 格式化标签 图像标签 超链接标签 表格标签 表单标签 前置 前面我们主要讲述了Jav ...

最新文章

  1. 深入理解JavaScript定时机制
  2. 网站SEO更新时选择适当的时间点有什么好处?
  3. Android SDK下载失败的解决方法
  4. 【选摘】为什么说SAP中没有在制品的盘点
  5. android studio 实用指南,《Android Studio实用指南》4.27 使用演示模式(示例代码)
  6. Tampermonkey油猴插件各种浏览器下载教程【chrome、firefox、Edge、360、QQ、Safari等】
  7. 汇编语言不带冒号标号的用法
  8. 引用参数与引用返回值
  9. 全局变量及其含义php,php Server:php超全局变量Server的含义与用法示例
  10. zedboard板子上呼吸灯的实现(第一版)仿真代码的实现
  11. Java中判断素数的五种方法
  12. python 微服务 网关_关于API微服务网关
  13. 如何在liunx上搭建服务器资源监控平台
  14. 阿里飞冰的介绍以及使用
  15. java 注册探探账号_零基础手把手教你开发探探类社交软件Tinder
  16. ${}和`${}`的用法
  17. HP ProBook 4421s配置完成无线网卡
  18. 服务器风扇插头型号,服务器风扇专场 台达 12V   12CM 4.8A怪兽来袭只要15元
  19. 雅虎的无奈,将关闭地图、Pipes、GeoPlanet和PlaceSpotter APIs、一些区域网站
  20. 洛咕 P2403 [SDOI2010]所驼门王的宝藏

热门文章

  1. jMeter 打开项目时遇到错误消息 CannotResolveClassException: com.blazemeter.jmeter.RandomCSVDataSetConfig
  2. 内容分发网络 CDN 是如何提高网页加载时间的?
  3. Eclipse里如果看不到Attach Source按钮应该怎么办
  4. 一段简单的JavaScript代码,实现在同一网页输出多个图标的功能
  5. 重构老系统遗留代码的一些方法学习笔记
  6. OPA 22 - sinor fake xml http request
  7. how can a model method trigger binding value refreshed
  8. SAP UI5 how the ui library theme parameter is loaded
  9. filter in Fiori HANA live report
  10. 使用Java程序通过http post访问Application server