- Set容器特点:无序,不可重复。无序指Set中的元素没有索引,只能遍历查找;不可重复指不允许加入重复的元素,甚至,只能放入一个null元素。
- Set常用实现类有:HashSet,TreeSet等。
HashSet底层是HashMap
手工实现HashSet
public class SxtHashSet {
HashMap map;
private static final Object PRESENT = new Object();
public SxtHashSet(){
map = new HashMap();
}
public int size(){
return map.size();
}
public void add(Object o){
map.put(o, PRESENT);
}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[");
for (Object key:map.keySet()) {
stringBuilder.append(key+",");
}
stringBuilder.setCharAt(stringBuilder.length()-1,']');
return stringBuilder.toString();
}
public static void main(String[] args) {
SxtHashSet set = new SxtHashSet();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set);
}
}