手工实现HashSet

版权声明: https://blog.csdn.net/weixin_40072979/article/details/82967548

HashSet 底层是由 HashMap 实现的,添加的元素将最为 HashMap 中的 key 

package com.jianshun;

import java.util.HashMap;

/**
 * 手动实现HashSet,更深刻理解HashSet原理
 * @author Administrator
 *
 */
public class SxtHashSet {
	
	HashMap map;
	
	private static final Object PRESENT = new Object();
	
	private  SxtHashSet() {
		map = new HashMap();
	}
	
	public int size(){
		return map.size();
	}
	
	public void add(Object o){
		map.put(o, PRESENT);
	}
	
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder("[");
		for(Object key : map.keySet()){
			sb.append(key+",");
		}
		sb.setCharAt(sb.length()-1, ']');
		return sb.toString();
	}

	public static void main(String[] args) {
		SxtHashSet set = new SxtHashSet();
		set.add("aa");
		set.add("bb");
		set.add("cc");
		
		System.out.println(set);
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_40072979/article/details/82967548