码迷,mamicode.com
首页 > 其他好文 > 详细

Object类

时间:2018-04-03 14:36:21      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:return   tostring   val   字符   ash   ret   span   end   als   

package theCode;

public class IP {
private short[] ipBytes = new short[4];

public IP(String ipStr) {
String[] split = ipStr.split("[.]");
for (int i = 0; i < 4; i++) {
ipBytes[i] = Short.valueOf(split[i]);
}
}

@Override
public String toString(){
StringBuilder theB = new StringBuilder();
for (int i = 0; i < ipBytes.length; i++) {
if (i != 0) {
theB.append(".");
}
theB.append(ipBytes[i]);
}
return theB.toString();
}

@Override
public boolean equals(Object object){
if (object instanceof IP) {
IP ip = (IP)object;
for (int i = 0; i < ipBytes.length; i++) {
if(this.ipBytes[i] != ip.ipBytes[i]){
return false;
}
}
return true;
}
return false;
}
@Override
public int hashCode(){
return this.toString().hashCode();
}
}

/****************************************************/

package theCode;

import java.util.HashSet;
import java.util.Set;

public class TestIp {

public static void main(String[] args) {
IP ip = new IP("255.254.23.1");
IP ip1 = new IP("255.254.23.4");
IP ip2 = new IP("255.254.23.2");

System.out.println(ip.equals(ip1));

Set<IP> set = new HashSet<>();
set.add(ip);
set.add(ip1);
set.add(ip2);
System.out.println(set.size());
}

}

/******************************/

toString方法就是返回对象值的字符串

equals方法就是判断两个引用是否相等,而有些时候是需要两个不同的对象里的值是否相等,这时就需要重写equals方法

hashcode方法的目的是得到不同的散列码,相同的内容的散列码要相同,不同内容的散列码要尽量不相同,在默认情况下是会对hashcod方法的所属对象的引用进行散列码转换,所以不同对象的值相等时,就需要重写hashcode方法,来判断对象的值的hashcode。

Object类

标签:return   tostring   val   字符   ash   ret   span   end   als   

原文地址:https://www.cnblogs.com/ff1995/p/8707726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!