您的位置:首页 > 编程语言 > Java开发

java中的全等和相似

2015-12-22 21:50 387 查看
package pack2;

import java.util.*;

/*Node 的equals()和hashCode()两个函数缺一不可
* HashSet会通过这两个函数来判断两个元素是否等价
* HashSet满足元素互异性
*/
class Node {
public int number;

public Node(int n) {
number = n;
}

public boolean equals(Object o) {
if (number == ((Node) o).number)
return true;
else
return false;
}
// public int hashCode(){ return number; }
}

public class HashSetTest {

public static void main(String[] args) {
HashSet<Node> set = new HashSet<Node>();
set.add(new Node(3));
set.add(new Node(3));
System.out.println(set.size());
}
}


如果没有实现hashCode,输出为2.因为HashSet<Node>认为这两个东西不全等

如果实现了hashCode,输出为1,因为HashSet<Node>中没有重复元素

在java中,全等意思是hashCode相等并且a.equals(b)

在java中,a.equals(b)表示a与b相似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: