remove(Object o)
のメソッド(of List interface)
とremoveFirstOccurrence(Object o)
の方法(of LinkedList class)
のコレクションのAPIには違いがありますか? 私はどちらも同じことを見ることができます。つまり、リスト内の最初のオカレンスを削除します。removeFirstOccurrenceとremoveの違い
答えて
(リスト インターフェースの)削除(オブジェクトo)メソッドとremoveFirstOccurrenceと(オブジェクトo)法の間の任意の差はあります(LinkedList クラスの)コレクションフレームワークで?
これらは2つの異なる方法であり、2つの異なるインターフェイスに由来します。
最初のもの(remove(Object o)
)はjava.util.Collection
インターフェイスで定義されています。
他方(removeFirstOccurrence(Object o)
がjava.util.Deque
インタフェースで定義されて
を最初のもの(remove(Object o)
)はCollection
インタフェースではなく、一般的な契約を結んでいる:。
このから指定された要素の単一のインスタンスを削除しますコレクションが存在する場合は コレクション...
しかしCollection
は、より具体的な契約有し延びList
インタフェース:それは現在(任意のオペレーション)である場合、このリストの指定された要素の最初の発生を削除し
を....
一つ一方、Deque
インタフェースで定義されremoveFirstOccurrence(Object o)
は、同様の契約を指定します。
は...
この両端キューから指定された要素の最初の発生を削除これはLinkedList
直接List
とDeque
の両方を実装していることが分かります。
List.remove(Object o)
とDeque.removeFirstOccurrence(Object o)
は同様の契約を指定しているため、LinkedList
クラスのこれらの2つのメソッドの動作と実装が同じであることは実際には驚くことではありません。
んが、私はどんな違いがあるの両方の正式要素とreturn.Moreの最初の発生を削除しないと思う、最低のインデックスi
のJava API ArrayListの削除を持つ要素を削除しません。
public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
LinkedListのremoveFirstOccurrenceと
if (o == null) {
for (Node<E> x = first; x != null; x = x.next) {
if (x.item == null) {
unlink(x);
return true;
}
}
} else {
for (Node<E> x = first; x != null; x = x.next) {
if (o.equals(x.item)) {
unlink(x);
return true;
}
}
}
return false;
はいとノー
removeFirstOccurrenceとコールは削除ありませんので
public boolean removeFirstOccurrence(Object arg0) {
return this.remove(arg0);
}
はいremoveFirstOccurrenceとはLinkedListはからではなく、例えば、他のリストから呼び出すことができますので、 ArrayList
いいえ、違いがありませんです。あなたがremoveFirstOccurrence()
のソースを見れば
、あなたが表示されます:
public boolean removeFirstOccurrence(Object o) {
return remove(o);
}
LinkedList
は両方それぞれのjavadocの与えられた理由:によって指定
remove(Object o)
:remove
インタフェースでCollection<E>
指定:remove
in interface Deque<E>
指定:界面におけるremove
List<E>
removeFirstOccurrence(Object o)
によって指定 :インタフェースにremoveFirstOccurrence
Deque<E>
- 1. std :: removeとboost :: filesystem :: removeの違いは?
- 2. mongodbの相違点remove()とdeleteOneAndDelete()とdeleteOne()との比較
- 3. PyCharmでリファクタリングするときのRemoveとExcludeの違いは何ですか?
- 4. Jquery removeと$(this)
- 5. findOne()とremove()についての混乱
- 6. TK "grid"と "grid remove"
- 7. ブーストnamed_mutexとremove()コマンド
- 8. .NET - イベントADDとREMOVE
- 9. jqueryの.clone()メソッドと.remove()メソッド
- 10. 演算子==とリスト::のremove()
- 11. removeAttr()とremove()が機能しない
- 12. 偶発的シャドーイングと `Remove [symbol] '
- 13. AngularJSとSpring MVCプロジェクトremove '#!'
- 14. vue jsで$ emit(\ 'remove \')とは
- 15. Wordpress remove
- 16. remove:プロローグ
- 17. jqueryのADDとREMOVEボタンの機能
- 18. RabbitMQ - ackonwledgmentsとrequeue/removeの作業方法
- 19. remove:ボタンのonclickを
- 20. ResponseBodyのJava removeプロパティー
- 21. jquery validation remove submitHandler
- 22. bourne-shell find-remove
- 23. Docker remove container error
- 24. Java ArrayList break remove
- 25. Summernote remove resize bar
- 26. jquery .remove not working
- 27. jquery remove()でメモリリーク?
- 28. Yahoo Pipes .. Remove Nesting
- 29. java:arraylist.contains&remove not working
- 30. emacs hg remove function