Set接口是Collection接口的子接口,Set接口中不能插入重复元素

Set接口的常用子类:

HashSet是set接口的一个子类,特点:里面不能存放重复元素,而且采用散列的存储方式,所以没有顺序。

Treeset也是set接口的一个子类,特点:里面不能存放重复元素,并且是有序存放

TreeSet是有序存放的,所以需要制定好排序规则,TreeSet中每个对象所在的类都必须实现Compatable接口才可以正常使用;

packageleiji;

publicclass Person implements Comparable<Person> {

private String name;

private int age;

public Person (String name,int age){

this.name=name;

this.age=age;

}

public String toString(){    //覆写toString方法

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

}

public int compareTo(Person per){  //覆写compareTo方法

if(this.age>per.age){

return 1;

}

else if(this.age<per.age){

return -1;

}

else{

return this.name.compareTo(per.name) ;

}

}

}

packageleiji;

publicclass Personal {

private String name;

private int age;

public Personal (String name,int age){

this.name=name;

this.age=age;

}

public String toString(){    //覆写toString方法

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

}

public boolean equals(Object obj){  //覆写equals方法

if(this==obj){          //判断是不是同一个对象

return true;

}

if (!(obj instanceofPersonal)){ //判断是不是同一个类

return false;

}

Personalp=(Personal)obj;       //进行向下转型

if(this.name.equals(p.name) && this.age==p.age){   //

return true;

}else{

return false;

}

}

public int hashCode(){      //覆写hashCode函数

returnthis.name.hashCode()*this.age;   //指定编码格式

}

}

packageleiji;

importjava.util.Set;

importjava.util.HashSet;

importjava.util.TreeSet;

publicclass Sett {

public static void main(String args[]){

Set<String> allset=new HashSet<String>();

allset.add("A");

allset.add("M");

allset.add("D");

allset.add("F");

allset.add("F");

System.out.println(allset);

Set<String> sortset=new TreeSet<String>();

sortset.add("F");

sortset.add("M");

sortset.add("A");

sortset.add("d");

System.out.println(sortset);

//运用自定义的类对象作为元素

Set<Person> alls=new TreeSet<Person>();

alls.add(new Person("张三",30));

alls.add(new Person("张三",32));

alls.add(new Person("张三",30));

alls.add(new Person("李四",30));

System.out.println(alls);

//运用自定义类Personal作为元素 实现HashSet去重功能

Set<Personal> allse=new HashSet<Personal>();

allse.add(new Personal("张三",30));

allse.add(new Personal("李四",30));

allse.add(new Personal("张三",30));

allse.add(new Personal("赵六",30));

allse.add(new Personal("徐峥",30));

System.out.println(allse);

}

}

//一个好的object类最好覆写Object类的HashCode() equals() toString() 三个方法

Java类集-set相关推荐

  1. java类集(List/Set/Map/

    java实现类集的包: java.util.*包 类集:动态对象数组(可以保存多个对象在一个数组之中)或链表 问题:数组长度不可改变,当需要向数组中增加数据的时候需要去考虑对象数组的容量 Collec ...

  2. Java类集框架详细汇总

    前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...

  3. [零基础学JAVA]Java SE应用部分-35.JAVA类集之四

    JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ...

  4. [零基础学JAVA]Java SE应用部分-35.JAVA类集之二

    JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ...

  5. Java类集框架基础-Collection

    集合类又被称作容器,常见集合:List集合,Set集合和Map集合,而List集合和Set集合继承Collection集合. Collection集合 是进行单对象保存的最大父接口,每次只能保存一个对 ...

  6. Java第六次作业--异常处理和Java类集

    (一)学习总结 1.用思维导图对本周的学习内容进行总结. 2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序.可使用printStackTrace 和getMessage方法了 ...

  7. 什么是java框架结构_什么是JAVA类集框架啊?具体指的是什么?是JAVA类的框架结构么?...

    参考答案如下 Word 2010 给选定的段落.类类 表单元格. 图文框添加的背景称为( ) . 近亲婚配时,集框架具体结构子女中隐性遗传病的发病率要比非近亲婚配者高得多这是由于他们来自共同的祖先,往 ...

  8. Java类集-SortedSet接口

    TreeSet实现了SortedSet接口 package iotest; import java.util.SortedSet; import java.util.TreeSet; public c ...

  9. Java类集-list

    Collection 子接口: ArrayList是List 接口和Collection接口的一个子类,用于实例化两种接口 package leiji; import java.util.ArrayL ...

最新文章

  1. 数据分析-pca协方差
  2. STM32 基础系列教程 43 – SRAM
  3. 【算法入门漫画】:“排序算法” 大总结
  4. asp获取ftp服务器目录并显示_用 Python 快速实现 HTTP 和 FTP 服务器
  5. 全文搜索引擎 ElasticSearch 还是 Solr?
  6. js实现日历框上一日下一日_一日三项令人兴奋的Lucene功能
  7. oracle util_mail,Oracle UTL_MAIL邮件包程序使用实践
  8. Django账号绑定邮箱时发送链接
  9. 使用jquery实现局部刷新DIV
  10. 根据viewport的size自动调整fontsize大小
  11. wifi破解到局域网渗透
  12. jdk优先级队列是如何实现的
  13. Java毕设项目宠物管理系统计算机(附源码+系统+数据库+LW)
  14. 鹰式价差matlab,期权价差
  15. iphone捷径大全_iPhone捷径,助您一臂之力
  16. 微信抢抢票服务器,2018微信上怎么老是正在抢票?在微信上抢火车票的经验
  17. 看我骚操作‘破解’某查查app的sign以及某眼查的Authorization!
  18. Win10家庭版 傻瓜安装datahub的备忘一则
  19. SQLServer修改表数据
  20. RTKLib的Manual基础解读

热门文章

  1. 阿里如何应对亿级高并发大流量?如何保障高可用和稳定性!
  2. [翻译] 使用 Serverless 和 .NET Core 构建飞速发展的架构
  3. 一本让我多花2倍时间读的书
  4. ASP.NET Core on K8S学习初探(1)
  5. 纠正一个错误,分布式系统关注点第17篇
  6. 构建简单的微服务架构
  7. 如何在ASP.NET Core中自定义Azure Storage File Provider
  8. .NET Core微服务之基于IdentityServer建立授权与验证服务
  9. 微软Connect(); 2017大会梳理:Azure、数据、AI开发工具
  10. 在CentOS上使用Jexus托管运行 ZKEACMS