• Object类


    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。

  • 相关阅读:
    JeecgBoot 2.4 微服务正式版发布,基于SpringBoot的低代码平台
    JeecgBoot 常见问题Q&A
    docker安装rabbitmq延时队列插件
    docker安装nacos
    docker安装xxl-job-admin
    docker安装rabbitmq
    低代码开发平台有哪些?
    对比 jeecgboot 和国内外其它低代码平台的区别
    JimuReport积木报表 — API数据源报表带参制作
    JimuReport积木报表 — API数据源报表制作
  • 原文地址:https://www.cnblogs.com/ff1995/p/8707726.html
Copyright © 2020-2023  润新知