HashSet重复标准_重复判断的问题,颜色形同,坐标点距离不超过2,则认为是同一个点对象
2014-04-11 10:46
302 查看
/**
* 有如下类型,代表某应用中的点类型
class MyPoint
{
private int x; //横坐标 例如:15
private int y; //纵坐标 例如:22
private String color; //点的颜色,例如:red
...
}
需要把这种类型的对象加入到 HashSet中去,请解决重复判断的问题。
判定要求: 颜色形同,坐标点距离不超过2,则认为是同一个点对象(可以想象因为测量误差,允许坐标有小的飘动)
*/
package cn.itcast.map;
import java.util.HashSet;
import java.util.Set;
public class MyPoint {
private int x; //横坐标 例如:15
private int y; //纵坐标 例如:22
private String color; //点的颜色,例如:red
public MyPoint(int x,int y){
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if(o instanceof MyPoint ==false){
return false;
}
MyPoint p = (MyPoint) o;
double m = Math.sqrt(Math.pow((x-p.x), 2)+Math.pow((y-p.y),2));
if(m>=2){
return false;
}
return true;
}
@Override
public int hashCode() {
return 1;
}
@Override
public String toString() {
return "("+this.x+","+this.y+")";
}
public static void main(String [] args){
Set<MyPoint> s = new HashSet<MyPoint>();
s.add(new MyPoint(10, 10));
s.add(new MyPoint(11, 11));
s.add(new MyPoint(20, 20));
s.add(new MyPoint(21, 20));
System.out.println(s);
}
}
* 有如下类型,代表某应用中的点类型
class MyPoint
{
private int x; //横坐标 例如:15
private int y; //纵坐标 例如:22
private String color; //点的颜色,例如:red
...
}
需要把这种类型的对象加入到 HashSet中去,请解决重复判断的问题。
判定要求: 颜色形同,坐标点距离不超过2,则认为是同一个点对象(可以想象因为测量误差,允许坐标有小的飘动)
*/
package cn.itcast.map;
import java.util.HashSet;
import java.util.Set;
public class MyPoint {
private int x; //横坐标 例如:15
private int y; //纵坐标 例如:22
private String color; //点的颜色,例如:red
public MyPoint(int x,int y){
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if(o instanceof MyPoint ==false){
return false;
}
MyPoint p = (MyPoint) o;
double m = Math.sqrt(Math.pow((x-p.x), 2)+Math.pow((y-p.y),2));
if(m>=2){
return false;
}
return true;
}
@Override
public int hashCode() {
return 1;
}
@Override
public String toString() {
return "("+this.x+","+this.y+")";
}
public static void main(String [] args){
Set<MyPoint> s = new HashSet<MyPoint>();
s.add(new MyPoint(10, 10));
s.add(new MyPoint(11, 11));
s.add(new MyPoint(20, 20));
s.add(new MyPoint(21, 20));
System.out.println(s);
}
}
相关文章推荐
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- JAVA HashSet 的 判断重复 问题
- 编写函数,对标准输入进行扫描,并对“the”出现的次数进行计数。 进行比较时应区分大小写。认为一个单词有一个或多个空格字符分隔, 并且输入行在长度上不会超过100个字符,计数结果输出。
- Java中HashSet存储对象判断是否重复原理分析
- 【Java学习笔记】Hashset判断自定义对象是否重复
- 向HashSet插入自定义对象判断是否重复
- 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- java中判断一个类的对象是否相等问题
- 判断全角半角混合字符串的字节数是否超过指定的字节数。(半角被认为是一个字节)
- ArrayList,HashSet判断对象是否重复的原理
- hihocoder #1040 矩形判断(计算几何问题 给8个点的坐标,能否成为一个矩形 【模板思路】)
- 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.
- 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- java用HashSet集合判断重复问题。
- 编写一个程序,从标准输入中读取若干string对象并查找连续重复出现的单词。所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词
- 面试问题(jvm怎么判断一个对象已经没用)
- 最短路径问题平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。