Set源碼解析__源碼

來源:互聯網
上載者:User

Set介面繼承了Collection介面,繼承了所有Collection介面的方法,下面予以分析Set源碼。

package java.util;/** * 不包含有重複元素的無序集合。通過.equals()方法校正是否重複 */public interface Set<E> extends Collection<E> {    // Query Operations    /**     * Returns the number of elements in this set (its cardinality).  If this     * set contains more than <tt>Integer.MAX_VALUE</tt> elements, returns     * <tt>Integer.MAX_VALUE</tt>.     *     * @return the number of elements in this set (its cardinality)     * 返回set中元素的數量     * 如果元素數量大於2^31-1,返回的值為2^31-1     */    int size();    /**     * set集合是否為空白,若為空白,則返回true     *               若不為空白,則返回false     */    boolean isEmpty();    /**     * set集合是否包含元素o,若包含,返回true;否則返回false     */    boolean contains(Object o);    /**     * 返回set集合的迭代器     */    Iterator<E> iterator();    /**     * 將set集合轉化為數組     */    Object[] toArray();    /**     * Returns an array containing all of the elements in this set; the     * runtime type of the returned array is that of the specified array.     * If the set fits in the specified array, it is returned therein.     * Otherwise, a new array is allocated with the runtime type of the     * specified array and the size of this set.     *     * <p>If this set fits in the specified array with room to spare     * (i.e., the array has more elements than this set), the element in     * the array immediately following the end of the set is set to     * <tt>null</tt>.  (This is useful in determining the length of this     * set <i>only</i> if the caller knows that this set does not contain     * any null elements.)     *     * <p>If this set makes any guarantees as to what order its elements     * are returned by its iterator, this method must return the elements     * in the same order.     *     * <p>Like the {@link #toArray()} method, this method acts as bridge between     * array-based and collection-based APIs.  Further, this method allows     * precise control over the runtime type of the output array, and may,     * under certain circumstances, be used to save allocation costs.     *     * <p>Suppose <tt>x</tt> is a set known to contain only strings.     * The following code can be used to dump the set into a newly allocated     * array of <tt>String</tt>:     *     * <pre>     *     String[] y = x.toArray(new String[0]);</pre>     *     * Note that <tt>toArray(new Object[0])</tt> is identical in function to     * <tt>toArray()</tt>.     *     * @param a the array into which the elements of this set are to be     *        stored, if it is big enough; otherwise, a new array of the same     *        runtime type is allocated for this purpose.     * @return an array containing all the elements in this set     * @throws ArrayStoreException if the runtime type of the specified array     *         is not a supertype of the runtime type of every element in this     *         set     * @throws NullPointerException if the specified array is null     */    <T> T[] toArray(T[] a);    // Modification Operations    /**     * 向set中添加元素e     */    boolean add(E e);    /**     * 移除元素o     */    boolean remove(Object o);    // Bulk Operations    /**     * set是否包含c中所有元素     */    boolean containsAll(Collection<?> c);    /**     * 將c中所有元素添加到set中     */    boolean addAll(Collection<? extends E> c);    /**     * 保留c中所有元素     */    boolean retainAll(Collection<?> c);    /**     * 移除set中所有c的元素     */    boolean removeAll(Collection<?> c);    /**     * 移除所有set元素     */    void clear();    // Comparison and hashing    /**     * 是否為同一對象     */    boolean equals(Object o);    /**     * 擷取set的hash值     */    int hashCode();}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.