zoukankan      html  css  js  c++  java
  • hashcode()和equals()方法

    hashCode()
    equals()

    new String("aa") == new String("aa")
    equals()


    1,一般我们自己用时,只使用equals()方法,用于判断两个对象是否是业务上等价的。
    2,在重写equals()方法时,强烈推荐也要重写hashCode()方法,因为有的集合用到了hashCode()来提高效率。
    equals为true的对象的hashCode值一定要一样。
    equals为false的对象的hashCode值尽量不一样。
    3,可以使用工具自动生成hashCode()与euqals()方法。


    public class TestEquals {

    @Test
    public void test() throws Exception {
    Set<User> set = new HashSet<User>();

    // User user = new User(1);
    // set.add(user);
    // set.add(user);

    set.add(new User(1));
    set.add(new User(1));
    set.add(new User(1));

    System.out.println(set.size());
    }

    @Test
    public void test2() throws Exception {
    System.out.println("aa" == "aa"); // true
    System.out.println(new String("aa") == new String("aa")); // false
    System.out.println("aa" == new String("aa")); // false

    System.out.println("aa".equals(new String("aa"))); // true
    }

    @Test
    public void test3() throws Exception {
    Set<User> set = new HashSet<User>();

    User user = new User(); // id = 0
    set.add(user);

    // session.save(user); // id = 5
    user.setId(5);
    set.add(user); // user.hashCode() == eltOldhashCode;

    // set.add(user);
    System.out.println(set.size());
    }
    }

  • 相关阅读:
    hdu5886Tower Defence(树形dp)
    hdu5893 List wants to travel(树链剖分+线段树)
    hdu5884 Sort(二分)
    hdu3559 Frost Chain (概率dp+记忆化搜索)
    hdu5790 Prefix(Trie树+主席树)
    tp5 cache 子文件夹名称
    resize 计算尺寸不正确
    Destoon Global 全局函数对应表
    MySQL语法大全
    myslq 表与表之前的数据转移
  • 原文地址:https://www.cnblogs.com/mxf97826/p/8708161.html
Copyright © 2011-2022 走看看