package com.cy.collection; import java.util.HashMap; /** * HashSet自定义实现 * 是使用hashMap实现的 * 可以看一下HashSet的源码,非常简单,就是调用hashMap的实现 * @author CY * */ public class HashSet { private HashMap map; private static final Object PRESENT = new Object(); public HashSet() { map = new HashMap(); } /** * set的不可重复就是利用了hashMap的键对象不可重复 * @param o */ public void add(Object o){ map.put(o, PRESENT); } public boolean remove(Object o) { return map.remove(o)==PRESENT; } public int size() { return map.size(); } }
Test.java测试类:
package com.cy.collection; public class Test { public static void main(String[] args) { HashSet set = new HashSet(); set.add("aa"); set.add(new String("aa")); set.add("bb"); System.out.println(set.size()); } //输出:2 }