public interface Set<E> extends Collection<E> {}
//继承AbstractCollection是继承基本集合功能,实现Set接口,是添加新的功能。使集合满足Set性质。
/*原来的概念有误,一个具体类实现接口或者继承抽象类,必须实现其中全部抽象方法(接口中方法自动为抽象方法)。而一个抽象类实现接口,可以选择实现某些方法和不实现,留给具体子类实现。
*/
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> {
覆盖了equals、hashCode、removeAll方法。
}
/*HashSet底层是HashMap,有些抽象方法继承于AbstractCollection*/
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{
// 底层是HashMap
private transient HashMap<E,Object> map;
//构造函数也是初始化HashMap
public HashSet() {
map = new HashMap<>();
}
public Iterator<E> iterator() {
return map.keySet().iterator();
}
public boolean contains(Object o) {
return map.containsKey(o);
}
}
public interface SortedSet<E> extends Set<E> {
//主要提供了比较器,comparartor()
//基本方法
subSet,headSet,tailSet,first,last
}
//底层还是TreeMap
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable{
}
Set
最新推荐文章于 2023-12-27 19:15:00 发布