97.模拟实现HashSet

HashSet的底层是HashMap因此模拟实现只需要对HashMap进行简单的封装就可以了。

模拟实现HashSet:

package mycollection;

import java.util.HashMap;

public class sHashSet {
	HashMap map;
	
	private static final Object PRESENT_OBJECT = null;
	
	public sHashSet() {
		map = new HashMap();
	}
	
	public int size() {
		return map.size();
	}
	
	public void add(Object key) {
		map.put(key, PRESENT_OBJECT);
	}
	
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder("{");
		for(Object keyObject : map.keySet()) {
			sb.append(keyObject+",");
		}sb.setCharAt(sb.length() - 1, '}');
//		return map.toString(); //以上是手动toString,也可以调用map的toString,但可能不符合预期
		return sb.toString();
	}

	public static void main(String[] args) {
		sHashSet shs = new sHashSet();
		shs.add("aaa");
		shs.add("bbb");
		shs.add("ccc");
		System.out.println(shs);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43808700/article/details/107440943
今日推荐