测试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中。