2019年1月22日-Set的实现

测试Hashset的用法:

package cn.liu.three;

import java.util.HashSet;
import java.util.Set;

public class testSet {

	public static void main(String[] args) {
		Set set=new HashSet();
		set.add("aaa");
		set.add(new String("aaa"));
		set.add("bbb");
		System.out.println(set.size());
		
		set.remove("bbb");
		System.out.println(set.size());
		System.out.println(set.contains("aaa"));
	}
}

自定义实现hashset的底层代码:

package cn.liu.three;

import java.util.HashMap;

public class MyHashSet {
	HashMap map;
	private static final Object PRESENT=new Object();
	int size;
	
	public MyHashSet() {
		map=new HashMap();
	}
	public int size() {
		return map.size();
	}
	
	public void add(Object obj) {
		map.put(obj,PRESENT);
	}
	
	public static void main(String[] args) {
		MyHashSet set=new MyHashSet();
		set.add("aaa");
		set.add(new String("aaa"));
		System.out.println(set.size());
	}

}

hashset的底层是map,且无序不可重复,将增加的值保存在map的key中。

猜你喜欢

转载自blog.csdn.net/qq_44370562/article/details/86593423