package point;
//an array arr is populated with random x,y points using MyPoint then
public static void main(String[] args) throws IOException {
HashMap<MyPoint,Integer> map = new HashMap<MyPoint,Integer>();
Integer val =0;
for(int i = 0; i < arr.length ; i++)
{
map.put(arr[i],val);
}
}
//second file.
package point;
public class MyPoint implements Comparable<MyPoint>{
private int x;
private int y;
public MyPoint(int x1, int y1) {
x = x1;
y = y1;
}
public boolean equals(Object p) {
MyPoint p1;
try {p1 = (MyPoint) p;}
catch (ClassCastException ex) {return false;}
return (x == p1.x) && (y == p1.y);
}
public int hashCode() {
return ((y * 31) ^ x);
}
这是我的代码 MyPoint 存储 xy 点。我正在使用此代码来获取唯一的 x,y 点集,没有重复。
我的问题是如何检索 MyPoint 中的 xy 值?这是使用 HashMap 过滤唯一 X、Y 点的有效方法吗?这也是我制作的HashCode。
我可以使用更好的 HashCode 吗?