---恢复内容开始---

            Java开发知识之Java中的集合Set接口以及子类应用

一丶Set接口以及作用

  在上一讲.我们熟悉了接口的实现图.以及自己各有的子类.

  List接口主要存储的数据是可以重复的.并且一个是动态数组 (ArrayList) 一个是链表操作(LinedList)

Set接口:

  Set集合主要的作用就是 Set集合中的对象,不按照特定的方式排序.只是简单的把对象加入到集合中,但是最重要的一点就是.Set集合中不能包含重复的对象.Set集合是个接口,实现了Collection接口.因此Collection接口中的所有方法.Set接口中都要.

二丶Set接口的具体实现类.

  HashSet 跟 TreeSet

两个类分别的作用:

  HashSet:

    HashSet类,实现了Set接口.是由哈希表(HashMap 实例.也就是对象支持的),他不保证Set的迭代顺序.

特别的是他不保证这个顺序是恒久不变的.这个类可以使用Null元素.

  TreeSet:

    TreeSet不仅实现了Set接口,还是先了Java.utio.SortedSet接口,因此TreeSet类实现的Set集合.

在遍历集合的时候.会按照自然顺序递增排序.也可以按照指定的比较器的递增排序.

总结:

    总结来说.两个类一个类是不保证顺序的.一个类是可以按照顺序遍历或者迭代的.(遍历跟迭代一个意思)

1.TreeSet类中的方法

  

firset方法.返回Set集合中第一个元素.或者最低的元素.

last()方法, 返回Set集合中最后一个元素.或者最高的元素.

compareator():就是返回比较器.如果自然排序.就返回null

以上方法就是返回一个新的Set集合. 可以范围返回. 也可以之间返回.

2.使用TreeSet.

  1.建立一个类.实现Comparable泛型接口

  2.此类重写接口中的compareTo方法.

  3.方法中比较.id. 谁大返回谁.

public  class Student implements Comparable<Object> {

    String name;
int id;
public Student(String name,String id) {
// TODO 自动生成的构造函数存根
this.name = name;
this.id = Integer.parseInt(id);
} public int compareTo(Object o) {
// TODO 自动生成的方法存根
Student stu = (Student)o;
int result = this.id > stu.id ? 1:(this.id == stu.id ? 0 : 1);
return 0;
}
  // 以下提供SetGet方法即可,这里不再写了.
}

实现了compareTo方法. 并且判断id. 如果id > 传入对象的Id. 那么就返回1,否则判断是否相等.相等返回0.否则返回1

PS: 这里实现Compareable<>接口的时候.里面需要传入Object

使用TreeSet类.

  使用TreeSet就是将对象存入TreeSet集合中,但是前提就是必须我们的对象必须是上面实现了Compareable<Object>接口的对象才可以. 并且重写了排序方法.这样我们的TreeSet集合才能使用.

  比如我们存储字符串

        //1.使用add方法.添加到集合中.
tree.add("Apple");
tree.add("banale");
tree.add("boy");
tree.add("Girl");
//2.全部遍历
System.out.println("开始进行全部遍历");
java.util.Iterator<String> it = tree.iterator();
while(it.hasNext()) {
String str = (String)it.next();
System.out.println("遍历结果 " + str);
}

添加跟遍历

结果:

Java开发知识之Java中的集合Set接口以及子类应用的更多相关文章

  1. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

  2. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  3. Java开发知识之Java中的泛型

    Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...

  4. Java开发知识之Java控制语句

    Java开发知识之Java控制语句 一丶复合语句 不管任何语言都有控制语句 if else if else whie do  while  for .... 首先讲解的是java的复合语句 1.什么是 ...

  5. Java开发知识之Java入门

    Java开发知识之Java入门 一丶了解JAVA的版本 JAVA 有三个版本 JAVA SE: 标准版,开发桌面跟商务应用程序 JAVA SE 包括了Java的核心类库,集合,IO 数据库连接 以及网 ...

  6. Java开发知识之Java的枚举

    Java开发知识之Java的枚举 一丶什么是枚举 枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字. 枚举跟C++概念都是一样的.就是特定的常 ...

  7. Java开发知识之Java的异常处理

    Java开发知识之Java的异常处理 一丶异常概述 在讲解异常之前,我们要搞清楚.什么是异常. 通俗理解就是我们编写的程序出问题了.进行处理的一种手段. 比如我们的QQ.有的时候就崩溃了.比如出现xx ...

  8. Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字

    Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...

  9. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

随机推荐

  1. 微信跳转ticket值怎么得到?浏览器跳到微信?哪里有微信跳转接口?跳转功能能用多久?

    目前很多实用微信跳转技术的电商朋友,网站文章头部或者文章中部出现了点击关注微信关注的二维码,用户点击进去直接跳转到微信内打开指定的二维码,识别即可关注,方便省事,比以往的一键复制—粘贴微信号,转化效果 ...

  2. springboot增删改查

    改https://blog.csdn.net/weixin_42338186/article/details/81561592 添加https://blog.csdn.net/weixin_42338 ...

  3. php操作数组函数

    整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数.数组的分段和填充.数组与栈.数组与列队.回调函数.排序.计算.其他的数组函数等. 一.数组操作的基本函数 数组的键名和值 array_va ...

  4. today-Extension widget 扩展开发

    设置UI部分的展开和收起

  5. js == 运算规则解析

    1.先了解一下基本类型和复杂类型划分的依据 JS中的值有两种类型:原始类型(Primitive).对象类型(Object).原始类型包括:Undefined.Null.Boolean.Number和S ...

  6. [LeetCode] Leaf-Similar Trees 叶结点相似的树

    Consider all the leaves of a binary tree.  From left to right order, the values of those leaves form ...

  7. [LeetCode] Longest Mountain in Array 数组中最长的山

    Let's call any (contiguous) subarray B (of A) a mountain if the following properties hold: B.length ...

  8. idea注册码

     2019 idea  注册码:   N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLC ...

  9. 编写输出“Hello world”

    1.打开Eclipse---->点击文件 如图所示:   2. 然后在新建--->点击Java项目会出现下图框------>在项目名输入框中输入项目名并选择JRE----->点 ...

  10. 解决 spring-cloud-starter-zipkin 启动错误

    应用场景:Spring Boot 服务添加 Zipkin 依赖,进行服务调用的数据采集,然后进行 Zipkin-Server 服务调用追踪显示. 示例pom.xml配置: <parent> ...