02.Java HashSet [Java_Android]
import java.util.HashSet;
import java.util.Iterator;
class R {
    int count;
    public R(int count) {
        this.count = count;
    }
    public String toString() {
        return "R[count:" + count + "]";
    }
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj != null && obj.getClass() == R.class) {
            R r = (R) obj;
            if (r.count == this.count) {
                return true;
            }
        }
        return false;
    }
    public int hashCode() {
        return this.count;
    }
}
public class Main {
    public static void main(String[] args) {
        HashSet<Object> hash = new HashSet<Object>();
        hash.add(new R(5));
        hash.add(new R(-3));
        hash.add(new R(9));
        hash.add(new R(-2));
        // 1.打印HashSet集合,集合元素没有重复
        System.out.println("1.原始数据,打印HashSet集合:");

        System.out.println(hash);


        // 取出一个元素,再次输出HashSet集合,集合没有重复元素
        Iterator it = (Iterator) hash.iterator();
        R first = (R) it.next();
        first.count = -3;
        System.out.println("2.取出一个元素,修改为-3后,打印HashSet集合:");

        System.out.println(hash);


        hash.remove(new R(-3));
        // 可以看出被删除类一个对象
        System.out.println("3.删除count为-3的R对象后,打印HashSet集合:");
        System.out.println(hash);
        System.out.println("4.hash是否包含count为-3的R对象?" + hash.contains(new R(-3)));
        System.out.println("5.hash是否包含count为5的R对象?" + hash.contains(new R(5)));
    }

}

输出:

1.原始数据,打印HashSet集合:
[R[count:5], R[count:9], R[count:-3], R[count:-2]]
2.取出一个元素,修改为-3后,打印HashSet集合:
[R[count:-3], R[count:9], R[count:-3], R[count:-2]]
3.删除count为-3的R对象后,打印HashSet集合:
[R[count:-3], R[count:9], R[count:-2]]
4.hash是否包含count为-3的R对象?false
5.hash是否包含count为5的R对象?false