Java类集-set

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

Set接口的常用子类:

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

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() 三个方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Color the ball

Color the ball Time Limit : 9000/3000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 30 Accepted Submission(s) : 13 Problem DescriptionN个气球排成一排&#xff0c;从左到右依次编号为1,2,3....N.每次给定2个整数a b(a < b),l…

只允许操作外协任务

应用 Oracle Work in Progress 层 Level Function 函数名 Funcgtion Name WIP_WIPDJMDF_DEFINE 表单名 Form Name WIPDJMDF 说明 Description 只允许操作外协任务 条件 Condition 触发器事件 Tirgger Event WHEN-VALIDATE-RECORD 触发器对象 Tirgger Object W_…

sqlite字段是否存在_【漏洞预警】Linux内核存在本地提权漏洞(CVE20198912)

更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)漏洞背景近日&#xff0c;Linux git中发布一个commit补丁&#xff0c;该补丁对应的漏洞是一个本地提权漏洞CVE-2019-8912&#xff0c;漏洞影响范围较广。根据git中的commit信息可知&#xf…

WPF 实现倒计时转场动画~

元旦元旦团团圆圆、WPF开发者在此真诚的祝愿开发者们在新的一年里心想事成、万事如意!WPF开发者QQ群&#xff1a; 340500857由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。01—代码如下一…

su命令的详细用法

1.命令作用 su的作用是变更为其它使用者的身份&#xff0c;超级用户除外&#xff0c;需要键入该使用者的密码。 2.使用方式 su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 3.参数说明 -f &#xff0c; –fast&#xff1a;不必读启动文件&#xff0…

Partitioning Strategies

001、三种基本分区方式&#xff1a;Range、Hash、List。 002、Single-Level Partitioning 表以三种分区方式之一进行分区&#xff0c;使用一列或多列作为分区键。 Range Partitioning 范围分区将数据按照分区键的范围值分配到各个分区。这是最常见的分区方式&#…

Java类集-SortedSet接口

TreeSet实现了SortedSet接口 package iotest; import java.util.SortedSet; import java.util.TreeSet; public class sset { public static void main(String args[]){ SortedSet<String> allsnew TreeSet<String>(); alls.add("A"); alls.add("M&…

chmod 777 修改权限

在Unix和Linux的各种操作系统下&#xff0c;每个文件&#xff08;文件夹也被看作是文件&#xff09;都按读、写、运行设定权限。例如我用ls -l命令列文件表时&#xff0c;得到如下输出:-rw-r--r-- 1 apple users 2254 2006-05-20 13:47 tt.htm从第二个字符起rw-是说用户apple有…

WPF架构分析

<?xml version"1.0" encoding"UTF-8"?> 1.DisptcherObject提供了线程和并发模型&#xff0c;实现了消息系统。 2.DependencyObject提供了更改通知&#xff0c;实现了绑定&#xff0c;样式。3.Visual是托管API和非托管API&#xff08;milcore&#…

数字化架构

看过《EA企业架构》、《应用架构》和《IT与业务之间的鸿沟》文章的好多朋友给我发信息&#xff0c;能不能再写篇文章&#xff0c;各行各业的朋友都能看懂的、容易接受的&#xff0c;下面我将尽量尝试朝着这个方向努力写一篇数字化架构的文章&#xff0c;希望各界的朋友们都能有…

安卓手机运行python程序的软件-安卓手机定时运行python脚本

话说现在智能手机的计算能力严重过剩啊&#xff0c;不玩游戏、不打电话、不刷微信时&#xff0c;要充分利用手机的计算潜力为我所用。完全可以把一些台式电脑上的计算任务移到手机上来运行。python就是一个很好的跨平台的解决方案。今天谈谈安卓手机上python脚本的定时运行问题…

readonly和const的区别

readonly与const的区别1、const常量在声明的同时必须赋值&#xff0c;readonly在声明时可以不赋值2、readonly只能在声明时或在构造方法中赋值&#xff08;readonly的成员变量可以根据调用不同的构造方法赋不同的值&#xff09;3、const前面不能添加static&#xff08;因为Cons…

shell查找命令大全

1.whereis 文件名 特点:快速,但是是模糊查找,例如 找 #whereis mysql 它会把mysql,mysql.ini,mysql.*所在的目录都找出来.一般的查找都用这条命令.2.find / -name 文件名特点:准确,但速度慢,消耗资源大,例如我想找到php.ini的准确位置,就需要用#find / -name php.ini3.locate 文…

busybox怎么安装

BusyBox就好比是一个满满的工具箱&#xff0c;它包压缩了 Linux 的许多工具和命令&#xff0c;还包含了 Android 系统自带的shell。 第一步&#xff1a; 首先要把手机给Root了&#xff0c;有很多root手机的软件&#xff0c;下了之后按提示就可以把手机root了。 第二部&#…

快速理解ASP.NET Core的认证与授权

ASP.NET Core的认证与授权已经不是什么新鲜事了&#xff0c;微软官方的文档对于如何在ASP.NET Core中实现认证与授权有着非常详细深入的介绍。但有时候在开发过程中&#xff0c;我们也往往会感觉无从下手&#xff0c;或者由于一开始没有进行认证授权机制的设计与规划&#xff0…

有一个开始

初级入门&#xff1a;独上高楼&#xff0c;望尽天涯路。---------------------------------------我是分割线-----------------------------------------每天看3个以上的网页设计或者网页模版&#xff0c;说说为什么好或者不好&#xff1b;实现3个以上的特效&#xff0c;想想其…

字符用_连接的是什么加密_防水连接器外壳与铜针表面涂层有什么用?

防水连接器外壳与铜针表面涂层会关系到产品的质量&#xff0c;毕竟材料选择方面&#xff0c;以及手工劳动方面都是需要把好关的&#xff0c;这样我们才能确保做出来了的产品送至用户身上是最好的。(凌科BD系列防水连接器铜针镀金效果)1、无氰偏碱亮铜&#xff1a;在铜合金材料防…

【27前端】base标签带有href属性会让chrome里的svg元素url失效

一个chrome的问题&#xff0c;但具体原因不明。 触发条件&#xff1a;chrome浏览器base标签里href属性有值的时候 触发问题&#xff1a;svg里面的元素如果有用url的滤镜和模糊&#xff0c;则会失效&#xff0c;在firefox里和IE10没有发现这个问题。 正常状态&#xff1a; 有bas…