一:引言
HashSet类继承于 Set接口 其方法均可被直接调用,不用手写,本篇敲的码是为了熟悉底层原理,HashMap的特点:无序,无重复。其底层用的也是map<key,value>容器,但其value值固定,所以在HashSet当中存储key值时,不可重复。
二:上码
package cn.wyj.two;import java.util.HashMap;
import java.util.Map;public class Demo8_手写HashSet {Map map;public static final Object VALUE = new Object();public Demo8_手写HashSet(){map = new HashMap();}public int size(){return map.size();}public void add(Object obj){map.put(obj,VALUE);}@Overridepublic String toString() {// TODO Auto-generated method stubStringBuilder sb = new StringBuilder();sb.append("[");for(Object temp:map.keySet()){sb.append(temp+",");}sb.setCharAt(sb.length() - 1, ']');return sb.toString();
}public static void main(String[] args) {Demo8_手写HashSet set = new Demo8_手写HashSet();set.add("aa");set.add("bb");set.add("cc");set.add("cc");//测试重复元素System.out.println(set);}
}