Set的不可重复就是利用了Map里键对象的不可重复。
1 package cn.bjsxt.collection; 2 3 import java.util.HashMap; 4 5 public class SxtHashSet { 6 7 HashMap map; 8 private static final Object PRESENT = new Object(); 9 10 public SxtHashSet() { 11 map = new HashMap(); 12 } 13 14 public int size() { 15 return map.size(); 16 } 17 18 public void add(Object o) { 19 map.put(o, PRESENT); //set的不可重复就是利用了map里面键对象的不可重复! 20 } 21 22 public static void main(String[] args) { 23 SxtHashSet s = new SxtHashSet(); 24 s.add("aaa"); 25 s.add(new String("aaa")); 26 System.out.println(s.size()); 27 } 28 29 }
运行结果:1