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());
    }
    }

  • 相关阅读:
    html5+css3兼容问题小结
    webkit滚动条样式设置
    rem彻底研究
    四月、五月开发总结
    php oci8 小试
    oracle创建dblink
    php 页面参数过多时自动拼接get参数的函数
    Oracle Database 11g Express Edition 使用小结(windows)
    php sortable 动态排序
    php动态生成一个xml文件供swf调用
  • 原文地址:https://www.cnblogs.com/mxf97826/p/8708161.html
Copyright © 2011-2022 走看看