Java类集-set
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_JAVA笔记(菜鸟教程)[通俗易懂]
- 编写java判断闰年_用Java程序判断是否是闰年的简单实例[通俗易懂]
- java常量有哪些_Java中的常量有哪些?
- java和c语言哪个简单_Java编程和C语言哪个好学
- java 正则表达式语法_JAVA正则表达式语法大全
- Java键盘输入一个int数组[通俗易懂]
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- java冒泡排序代码_Java冒泡排序
- java 添加盲水印_OpenCV-图像处理-频域手段添加盲水印
- Java版五子棋小游戏(java控制台)
- 【说站】java向下转型是什么意思
- jar中没有主清单属性啥意思啊_java命令运行jar找不到主类
- NativeCat报错:mycat sequnce err.java.lang.RuntimeException: can’t fetch sequnce in db,sequnce :GLOBAL
- idea打开工程无法运行java程序_如何运行一个java程序
- Oracle收购Java:瞩目引发的变革(oracle收购java)
- Java代码优化(长期更新)详解编程语言
- Java Set.contains()方法:判断Set集合是否包含指定的对象
- 键管理Java中Redis实现过期键管理(redisjava过期)
- key使用JAVA清理Redis中过期Key的方法(redisjava过期)
- 实现Java实现Redis入门指南(redis入门Java)
- Linux系统中下载Java的方法(linux下java下载)
- 使用Java实现MySQL数据恢复操作(java恢复mysql)
- 查找Java进程:Linux解决方案(linux查找java进程)
- 存储过程使用Java语言执行Oracle存储过程(java执行oracle)
- 数据库以Java运行环境构建基于Oracle的数据库(java创建oracle)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)
- Oracle SET日期 驾驭时间,管理数据(oracle set日期)
- Oracle Set命令调整你的参数配置(oracle set命令)
- Java实现Redis计数器功能(redis计数 java)
- 分享Java程序员应该知道的10个调试技巧
- java面向对象基础_final详细介绍
- 快速排序算法原理及java递归实现
- Java利用for循环输出空心菱形的实例代码
- java使用httpclient发送post请求示例