1
報價:Scala的mutable.LinkedList來源追加
如果
this
爲空,則什麼也不做,返回that
。
有一些問題,其中作者問如何追加到鏈表,但我沒有發現,爲什麼 LinkedList的設計有這樣的行爲。
還有一個問題,Scala是否有任何帶添加/附加的列表(它會將O(1)更改爲this
)和地圖操作?
報價:Scala的mutable.LinkedList來源追加
如果
this
爲空,則什麼也不做,返回that
。
有一些問題,其中作者問如何追加到鏈表,但我沒有發現,爲什麼 LinkedList的設計有這樣的行爲。
還有一個問題,Scala是否有任何帶添加/附加的列表(它會將O(1)更改爲this
)和地圖操作?
如果展開在mutable LinkedList API doc追加的文檔有更多的東西,最不解釋追加的O(n)性能:
def append(that: LinkedList[A]): LinkedList[A]
如果爲空,則什麼也不做,並返回該。否則, 附加到這一點。追加需要完整的遍歷這個。
追加需要一秒鐘LinkedList
(that
),並將其追加到當前一個(this
)。如果當前的LinkedList
爲空,則將第二個LinkedList
附加到空的一個的結果只是第二個LinkedList
。
我可能會誤解你的問題,但我不認爲這可能是有爭議的或需要特定的設計決定。
至於斯卡拉集合上的操作的性能特徵,我不確定是否有更新的東西,但我總是指出to this doc。
我只想知道,爲什麼LinkedList有這樣的行爲。我認爲簡單的列表應該有const時間添加操作(如java.util.LinkedList)。最有可能我不明白的東西。 我現在使用ListBuffer(用於地圖和添加),但不是很難看嗎? – user2317480
java.util.LinkedList實際上是一個雙向鏈表。它有恆定的時間增加,因爲結尾的位置是已知的。 –