簡體   English   中英

Java:為什么Set <E> 提到Collection中的所有方法 <E>

[英]Java: Why does Set<E> mention all methods in Collection<E>

http://download.oracle.com/javase/tutorial/collections/interfaces/set.html

為什么Set接口列出了Collection中的所有方法? 這些方法不是由子接口自動繼承的嗎?

它列出了所有這些,因為文檔是不同的,即使聲明本身是相同的。

該鏈接是一個教程 ,而不是API文檔。 試試這個鏈接:

http://download.oracle.com/javase/6/docs/api/java/util/Set.html

設置工作不同然后收集 - 在集合中您可以沒有重復的條目。 如果您只是從Collection中復制方法,那么您將實現Set wrong ...

像Kathy寫的那樣 - 文檔是不同的(因為邏輯/使用是不同的)

集合 .add():

確保此集合包含指定的元素(可選操作)。 如果此集合因調用而更改,則返回true。 (如果此集合不允許重復並且已包含指定元素,則返回false。)支持此操作的集合可能會對可能添加到此集合的元素設置限制。 特別是,某些集合將拒絕添加null元素,而其他集合將對可能添加的元素類型施加限制。 集合類應在其文檔中明確指定對可添加的元素的任何限制。

如果一個集合因為已經包含該元素的原因而拒絕添加特定元素,那么它必須拋出異常(而不是返回false)。 這保留了在此調用返回后集合始終包含指定元素的不變量。

設置 .add():

如果指定的元素尚不存在,則將其添加到此集合(可選操作)。 更正式地,如果集合不包含元素e2,則將指定的元素e添加到該集合中(e == null?e2 == null:e.equals(e2))。 如果此set已包含該元素,則調用將保持set不變並返回false。 結合對構造函數的限制,這可以確保集合永遠不會包含重復元素。 上述規定並不意味着集合必須接受所有要素; sets可以拒絕添加任何特定元素,包括null,並拋出異常,如Collection.add規范中所述。 單個集實現應明確記錄對它們可能包含的元素的任何限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM