结果是false
因为equals比较的是对象的内容,而不是对象的句柄

解决方案 »

  1.   

    fasle
    你没有重载boolean equals(Object o)方法
    程序将调用类Object 的equals方法,该方法好像是根据hash值判断是否相等。
    可以这样写
    class Value {
      int i;
      public boolean equals(Object o) {
           if(o==null||!(o instanceof Value))return false;
           Value v = (Value)o;
           return i=v.i;
      }
    }
      

  2.   

    sorry return i=v.i应该是
    return i==v.i
      

  3.   

    同意,
    需要重载boolean equals(Object o)方法。