先确定HashSet当中要拥有的方法和属性
-
add方法
-
size方法
传入的对象直接作为HashSet里面的HashMap的key值
属性包括:
-
HashMap
-
固定的一个常量值
定义一个HashSet类:
package collection.set;
import java.util.HashMap;
/**
* 手动实现一个简单的HashSet,理解HashSet底层原理
* @author Lucifer
*/
public class RealizeHashSet {
/*因为HashSet底层原理核心就是一个HashMap对象,所以先定义一个HashMap*/
HashMap map;
//定义一个固定的产量作为value值
public static final Object PRESENT = new Object();
/*构造器*/
public RealizeHashSet(){
//在这里直接当以Map对象
map = new HashMap();
}
/*获得里面的内容---直接然会map的size*/
public int size(){
//直接返回map的size方法---这里不是RealizeHashSet的size方法
return map.size();
}
/*调用add方法*/
public void add(Object o){
//返回值
//传入的对象作为key,一个常量作为固定的value值
map.put(o,PRESENT);
}
/*重写toString方法*/
测试类:
package collection.set;
/**
* 测试RealizeHashSet的实现
* @author Lucifer
*/
public class Test {
public static void main(String[] args) {
//创建类对象
RealizeHashSet rhs = new RealizeHashSet();
//调用类里面的方法
rhs.add("Lucifer");
rhs.add("Harden");
rhs.add("JunKingBoy");
//打印出结果
System.out.println(rhs);
}
}