容器基本练习:equals与hashCode——判定对象是否相同与哈希值的关系
2016-04-12 11:09
501 查看
import java.util.*; public class TestBasicContainer { public static void main(String[] args) { Collection collect = new HashSet(); collect.add("hello"); collect.add(new Integer(1000)); collect.add(new Name("william","AMG")); collect.remove("hello"); collect.remove(new Integer(1000)); System.out.println(collect.remove(new Name("william","AMG"))); System.out.println(collect); } } class Name{ private String firstName, lastName; Name(String firstName,String lastName){ this.firstName = firstName; this.lastName = lastName; } String getFirstName(){ return firstName; } String getLastName(){ return lastName; } public String toString(){ return firstName + " " + lastName; } public boolean equals(Object obj){ if (obj == null){ return false; } if (obj instanceof Name){//这里大部分人会选择obj.(firstName和lastName).equals(name.(firstName和lastName))的方法来阐述。 Name name = (Name) obj; if (((Name) obj).firstName == name.firstName && ((Name) obj).lastName == name.lastName){ return true; }else{ return false; } }else{ return false; }//((Name)obj).firstName中,((Name)obj).是可以不写的。 } //override是一模一样的照抄,包括参数。所以这里我自以为是了。 /*public boolean equals(Name parName){ if (parName == null){ return false; } if (parName instanceof Name){ Name name = (Name) parName; if (((Name) parName).firstName == name.firstName && ((Name) parName).lastName == name.lastName){ return true; }else{ return false; } }else{ return false; } }*/ public int hashCode(){ return firstName.hashCode() ; } }
相关文章推荐
- c++中容器之总结篇
- Equals和==的区别 公共变量和属性的区别小结
- java String 类的一些理解 关于==、equals、null
- java获取web容器地址的方法
- hashCode方法的使用讲解
- C#使用Equals()方法比较两个对象是否相等的方法
- C#值类型、引用类型中的Equals和==的区别浅析
- 迅速掌握Java容器中常用的ArrayList类与Vector类用法
- java的equals和==的比较示例
- java必学必会之equals方法
- why在重写equals时还必须重写hashcode方法分享
- java中hashCode方法与equals方法的用法总结
- JAVA hashCode使用方法详解
- Java编程中的equals方法使用全解
- Java中==与equals的区别小结
- 基于Java字符串 "==" 与 "equals" 的深入理解
- 未来的容器云技术栈会怎么样?在容器技术大会上的演讲
- 容器Docker详解
- Docker day1 什么是Docker