我这电脑还能联想拯救者电脑怎么样吗?

PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信java基础(2)
hashcode这个方法是用来鉴定2个对象是否相等的。
那你会说,不是还有equals这个方法吗?
不错,这2个方法都是用来判断2个对象是否相等的。但是他们是有区别的。
一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,
就可以判断他们是否相等了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。
举个例子,有个学生类,属性只有姓名和性别,那么我们可以认为只要姓名和性别相等,那么就说这2个对象是相等的。
hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,
他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。
这里不可以重复是说equals和hashcode只要有一个不等就可以了!所以简单来讲,hashcode相当于是一个对象的编码,
就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观。
我们一般在覆盖equals的同时也要覆盖hashcode,让他们的逻辑一致。举个例子,还是刚刚的例子,
如果姓名和性别相等就算2个对象相等的话,那么hashcode的方法也要返回姓名的hashcode值加上性别的hashcode值,
这样从逻辑上,他们就一致了
要从物理上判断2个对象是否相等,用==就可以了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6828次
排名:千里之外
转载:13篇
(1)(1)(5)(1)(3)(1)(1)java中的hashcode()和equals()方法详解
阅读(...) 评论()java基础(2)
java中的“==”:
&&&&&&& 基本数据类型之间用==比的是值
&&&&&&& 引用数据类型之间用==比较的是内存存放的地址
java中的equals方法:
&&&&&&& 它是一个可以重写可以重写的方法,如果不重写equals方法,那它和“==”号作用相同,比较的是对象存放的地址。重写后,可以比较对象的值。
举个例子: 用String来作为例子,当定义了两个字符串之后,调用equals方法,判断两个字符串是否相等,源码是这么实现的:
&&&&&&& &(1)判定传入的对象和当前对象是否为同一个对象,如果是就直接返回true.
&&&&&&& &(2) 判定传入的类型值是否为String,若不是则返回
&&&&&&& &(3)判定传入的String与当前的String的床都是否一致,若不一致就返回
&&&&&&& &(4)循环对比两个字符串的char[]数组,逐个对比字符是否一致,若存在不一致的情况,则直接返回
&&&&&&& &(5)循环结束都没有找到不匹配的,所以最后返回
public boolean equals(Object anObject) {
if (this == anObject) {
if (anObject instanceof String) {
String anotherString = (String)anO
int n = value.
if (n == anotherString.value.length) {
char v1[] =
char v2[] = anotherString.
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
要注意的是,当重写了equals方法之后,最好要重写hashcode方法。因为equals和hashcode的关系是这样的:
1、如果两个对象相同(即用equals比较返回true),那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同(即用equals比较返回false)&
(1).obj1.equals(obj2)为true时,obj1.hashcode() == obj2.hashcode()必须为true
(2).obj1.hashcode() == obj2.hashcode()为false是,obj1.equals(obj2)必须为false
那如何重写hashcode方法呢:
//anything为要比较的属性
public int hashCode() {
int result = 17;
result = result * 31 + anything.hashCode();
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:70次
排名:千里之外

我要回帖

更多关于 联想拯救者笔记本电脑 的文章

 

随机推荐