Java Set集合使用方法介绍(2)——宠物猫信息管理
来源:互联网 发布:数据分析师报考条件 编辑:程序博客网 时间:2024/05/17 02:07
Javapublic class Cat { private String name;// 名字 private int month;// 年龄 private String species;// 品种 // 构造方法 public Cat(String name, int month, String species) { super(); this.name = name; this.month = month; this.species = species; } // getter与setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public String getSpecies() { return species; } public void setSpecies(String species) { this.species = species; } @Override public String toString() { return "[姓名=" + name + ", 年龄=" + month + ", 品种=" + species + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + month; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((species == null) ? 0 : species.hashCode()); return result; } @Override public boolean equals(Object obj) { //判断对象是否相等,相等返回true,不用继续比较属性了 if(this==obj) return true; //判断obj是否是Cat类对象 if(obj.getClass()==Cat.class){ Cat cat = (Cat)obj; return cat.getName().equals(name)&&(cat.getMonth()==month)&&(cat.species.equals(species)); } return false; }}
Javaimport java.util.HashSet;import java.util.Iterator;import java.util.Set;public class CatTest { public static void main(String[] args) { //定义宠物猫对象 Cat huahua = new Cat("花花",12,"英国短毛猫"); Cat fanfan = new Cat("凡凡",3,"中华田园猫"); //将宠物猫对象放入HashSet中 Set<Cat> set = new HashSet<Cat>(); set.add(huahua); set.add(fanfan); //显示宠物猫信息 Iterator<Cat> it = set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } //再添加一个与花花属性一样的猫 Cat huahua01 = new Cat("花花",12,"英国短毛猫"); set.add(huahua01); System.out.println("***************************"); System.out.println("添加重复数据后的宠物猫信息:"); it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } System.out.println("***************************"); //重新插入一个新宠物猫 Cat huahua02 = new Cat("花花二代",2,"英国短毛猫"); set.add(huahua02); System.out.println("添加花花二代后的宠物猫信息:"); it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } //在集合中查找花花的信息并输出 System.out.println("***************************"); if(set.contains(huahua)){ System.out.println("花花找到了"); System.out.println(huahua); } else{ System.out.println("花花没找到"); } //在集合中使用名字查找花花的信息 System.out.println("***************************"); System.out.println("通过名字查找花花信息"); boolean flag = false; Cat c=null; it=set.iterator(); while(it.hasNext()){ c = it.next(); if(c.getName().equals("花花")){ flag=true;//找到了 break; } } if(flag){ System.out.println("花花找到了"); System.out.println(c); }else{ System.out.println("花花没找到"); } //删除花花二代的信息并重新输出 for(Cat cat:set){ if("花花二代".equals(cat.getName())){ set.remove(cat); break; } } System.out.println("*********************************"); System.out.println("删除花花二代后的数据"); for(Cat cat:set){ System.out.println(cat); } //删除集合中的所有宠物猫信息 System.out.println("****************"); boolean flag1 =set.removeAll(set); if(set.isEmpty()){ System.out.println("猫都不见了。。。"); }else{ System.out.println("猫还在。。。"); } }}
HashSet是Set的一个重要实现类,称为哈希集,HashSet中的元素无序并且不可以重复,HashSet中只允许一个null元素,具有良好的存取和查找性能。
我们必须要重写equals方法来保证无法插入重复的数据。
hashcode是哈希表中一个重要的元素,在数组中我们查找元素都是从头到尾遍历,效率较低,而哈希表中我们把每个元素与hashcode求余,得到的余数相同的元素放在一起,这样加快了查找的效率,而hashcode具体选择多少是我们不关心的,我们用IDE的自动重写hashcode功能就可以了。
阅读全文
0 0
- Java Set集合使用方法介绍(2)——宠物猫信息管理
- Java Set集合使用方法介绍(1)——在集合中插入字符串
- java学习4:案例:宠物猫信息管理
- Java List集合使用方法介绍(2)——公告管理
- Java Map集合使用方法介绍(2)——商品信息管理
- Java集合—Set集合
- 集合(4)—Collection之Set的使用方法
- Java List集合使用方法介绍(1)
- java集合系列——Set之HashSet和TreeSet介绍(十)
- JAVA——集合(Set)
- Java Map集合使用方法介绍(1)——在字典中添加内容并显示
- java——Set集合
- Java集合框架—Set
- java集合(二)——集合 Set
- java中set集合的使用方法
- java中set集合的使用方法
- java中set集合的使用方法
- 集合入门介绍第三章——Set集合
- 游戏物理数学之《四元数Quaternion》
- node.js vs. Spring
- Kalman滤波锁相及Matlab仿真
- 递归算法——入门汉诺塔
- nginx配置文件详解
- Java Set集合使用方法介绍(2)——宠物猫信息管理
- 双硬盘+win7+ubuntu双系统 去掉从硬盘后ubuntu无法正常启动问题解决方法
- 基于邻接矩阵的图的深度和广度遍历
- mysql “ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)”
- tomcat部署项目class文件丢失解决办法
- ibatis源码学习1_整体设计和核心流程
- 分页sql
- Redis性能问题排查解决手册
- 信号量SEM_UNDO设置