Set3

来源:互联网 发布:javs编程思想pdf百度云 编辑:程序博客网 时间:2024/05/23 00:08
package com.cavaness.quartzbook.chapter3;import java.util.Collection;import java.util.HashSet;public class Point {private int x;private int y;public Point(int x, int y) {super();this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + x;result = prime * result + y;return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Point other = (Point) obj;if (x != other.x)return false;if (y != other.y)return false;return true;}@Overridepublic String toString() {return "Point [x=" + x + ", y=" + y + "]";}public static void main(String[] args) {Point point = new Point(1, 2);Point point3 = new Point(3, 4);Collection<Point> points = new HashSet<Point>();points.add(point);points.add(point3);point.setX(2); // 当一个对象存储进HashSet之后,就不能修改这个对象参与hashcode计算的字段了,points.remove(point); // 因为这样会计算新的hashcode,从而找不到原先的hashcode,找不到对应的区域,从而找不到原先的元素System.out.println(points.size()); // 2 不是1for (Point point4 : points) {System.out.println(point4);}}}

原创粉丝点击