4.Java基礎複習--Set

1.interface Set extedns Collection Iterable 

   public boolean  add(E e);添加元素數組

  public boolean  addAll(Collection<? extends E> c);添加集合c到集合中spa

  public void     clear();清空Set對象

  public boolean  contains(Object o); 集合是否包含o元素排序

  public boolean  containsAll(Collection<?> c)集合中是否包含集合C中全部元素dns

  public boolean  isEmpty()  集合是否爲空接口

  public boolean  remove(Object o);移除集合中o元素ci

  public boolean  removeAll(Collection<?> c);移除集合中c集合全部元素rem

  public Object[] toArray();集合轉換成數組it

2.HashSet  implements Set

    private transient HashMap<E,Object> map;
io

    // Dummy value to associate with an Object in the backing Map

    private static final Object PRESENT = new Object();

    內部使用HashMap 的Key存儲元素Value指定爲PRESENT對象;

     public boolean add(E e) {

        return map.put(e, PRESENT)==null;

    }

    默認初始化容量 capacity (16) 加載因子 factor (0.75)

3.TreeSet implements NavigableSet extends AbstractSet

    TreeSet能夠確保集合元素處於排序狀態

    private transient NavigableMap<E,Object> m;

    // Dummy value to associate with an Object in the backing Map

    private static final Object PRESENT = new Object();

    內部使用NavigableMap 的Key存儲元素Value指定爲PRESENT對象;

     public boolean add(E e) {

        return map.put(e, PRESENT)==null;

    }

    TreeSet支持兩種排序方式,天然排序 和定製排序

    天然排序

     天然排序使用要排序元素的CompareTo(Object obj)方法來比較元素之間大小關係,而後將元素按照升序排列。

     Java提供了一個Comparable接口,該接口裏定義了一個compareTo(Object obj)方法,該方法返回一個整數值,實現了該接口的對象就能夠比較大小。

     obj1.compareTo(obj2)方法若是返回0,則說明被比較的兩個對象相等,若是返回一個正數,則代表obj1大於obj2,若是是 負數,則代表obj1小於obj2。

     若是咱們將兩個對象的equals方法老是返回true,則這兩個對象的compareTo方法返回應該返回0

    定製排序

       天然排序是根據集合元素的大小,以升序排列,若是要定製排序,應該使用Comparator接口,實現 int compare(T o1,T o2)方法

相關文章
相關標籤/搜索