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

            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. c++链表基本操作

    #include <stdlib.h> #include <malloc.h> #include <stdio.h> typedef struct Node { i ...

  2. mac上配置react-native环境run-ios/run-android命令遇到的问题

    新报错(rn版本:0.53.3)2018.3.6 今天在搞react-native环境时,遇到了一些坑,这里记录一下. 首先最重要的一点是一定要按官网一步一步来,不然可能会出现一些奇奇怪怪的问题! 官 ...

  3. [bzoj1059]矩阵游戏

    虽然是一道水难题,但是我这种蒟蒻还是要讲一讲的. Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际 ...

  4. VS Code 常用插件

    1.Chinese (Simplified) Language Pack for Visual Studio Code              VS Code软件汉化 2.Auto Close Ta ...

  5. MangoDb的安装及使用

    安装步骤 一.创建文件 vi /etc/yum.repos.d/mongodb-org-3.6.repo 二.配置文件内容 [mongodb-org-3.6] name=MongoDB Reposit ...

  6. laravel 邮件配置

    .env的配置 MAIL_DRIVER=smtpMAIL_HOST=smtp.163.comMAIL_PORT=465MAIL_USERNAME=你的163邮箱地址MAIL_PASSWORD=你的16 ...

  7. swust oj 986

    哈夫曼译码 1000(ms) 10000(kb) 1997 / 4186 通常要求根据给定的编码本对密文进行解码.现已给定相应字符的哈夫曼编码,要求根据编码对密文进行解码.(建立哈夫曼树以及编码.主函 ...

  8. python Ajax

    Ajax一.准备知识JSON1.什么是json JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSO ...

  9. 一种简单的 rem 单位基准设置

    1rem 换算成的像素值等于 html 元素的 font-size 值 如果 设置 html 的 font-size 为 100px, 那么设计稿的 像素转换成 rem 只需要除以 100 即可. f ...

  10. 升讯威微信营销系统开发实践:微信接口的 .NET 封装

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...