foxhuntd 2011-04-05 11:25
浏览 197
已采纳

这个测试,为什么总是false

[code="java"]//TPoint.java
/*
This is just a trivial "struct" type class --
it simply holds an int x/y point for use by Tetris,
and supports equals() and toString().
We'll allow public access to x/y, so this
is not an object really.
*/
public class TPoint {
public int x;
public int y;

// Creates a TPoint based in int x,y
public TPoint(int x, int y) {
    // questionable style but convenient --
    // params with same name as ivars

    this.x = x;
    this.y = y;
}

// Creates a TPoint, copied from an existing TPoint
public TPoint(TPoint point) {
    this.x = point.x;
    this.y = point.y;
}

// Standard equals() override
public boolean equals(Object other) {
    // standard two checks for equals()
    if (this == other) return true;
    if (!(other instanceof TPoint)) return false;

    // check if other point same as us
    TPoint pt = (TPoint)other;
    return(x==pt.x && y==pt.y);
}

// Standard toString() override, produce
// human-readable String from object
public String toString() {
    return "(" + x + "," + y + ")";
}

}
[/code]

[code="java"]
import java.util.HashSet;

public class test {

/**
 * @param args
 */
public static void main(String[] args) {
    TPoint a =new TPoint(0,1);
    TPoint b =new TPoint(0,1);
    HashSet<TPoint> setA = new HashSet<TPoint>();
    HashSet<TPoint> setB = new HashSet<TPoint>();
    setA.add(a);
    setB.add(b);
    boolean res = setA.equals(setB);
    System.out.println(res);


}

}
[/code]

  • 写回答

3条回答 默认 最新

  • iteye_12540 2011-04-05 11:44
    关注

    因为你没有重写hashCode。既然是HashSet,那么你不重写这个,Hash值都不一样,当然对不上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)