キューには特別なメソッドqueue.Peek()
が含まれていますが、一般的なqueue.First()
とqueue.Last()
を使用できるのはなぜですか?queue.First()/ Last()の代わりにqueue.Peek()を使用する理由
答えて
Peek
は、キューの古典的な方法です。First
とLast
はLinqメソッドです。キューはIEnumerable
を実装する可能性が最も高いので、厳密なキューとの関連性のないメソッドFirstおよびLastを取得します。
EDIT
これは、キューの法則を曲げるために世界の終わりではありません。あなたのニーズに合わせて構造を使用しているように思えます。キューがキューのように動作することを誰が期待しているのかは、次のプログラマにとっては混乱するかもしれません。 stackedQueueと呼ばれるQueueを拡張するクラスを作成するかもしれません。次に、誰かがあなたのコードを維持する必要がある場合、キューの動作を期待しません。
私は参照してください、しかし、キューは 'IEnumerable'なので、それらは動作するように保証されていますか?それで、なぜ私は余分なPeekメソッドが必要なのですか?問題は - 私は 'queue'の別の側から要素を取得し、そのために' IEnumerable'メソッドを使用する必要があります – javapowered
キューの背面にアクセスする必要がある場合は、キューを使用しないでください。 – Rawling
@それで何を使うの? (また 'queue'を使うこともできますが、最後に追加した値をキャッシュします) – javapowered
- 1. Date []の代わりにlong []を使用する理由
- 2. guava:コンストラクタの代わりにメソッドcreate()を使用する理由
- 3. QAの代わりにmochaを使用する理由
- 4. Stringの代わりにchar []を使用する理由は?
- 5. SpriteKitの代わりにCoreGraphicsを使用する理由は?
- 6. アサートの代わりにQ_ASSERTを使用する理由
- 7. シェルスクリプト - エコーの代わりにbin/echoを使用する理由?
- 8. safariのtext-align-lastの代わりに?
- 9. XMLの代わりにSGMLを使用する理由はありますか?
- 10. trueの代わりに!0を使用する理由はありますか?
- 11. AndroidのKotlinコルーチン:async()の代わりにAnkoのbg()を使用する理由
- 12. [x]の代わりにoperator.itemgetter(x)を使用する理由は何ですか?
- 13. ラムダ式の代わりにcompose()を使用する理由は何ですか?
- 14. grpcサーバの例でtls.Listenの代わりにnet.Listenを使用する理由
- 15. LocalDate、LocalTime、Streamオブジェクトがコンストラクタの代わりに()のファクトリメソッドを使用する理由
- 16. asp.netがbigintの代わりにGUID列を使用する理由
- 17. ダイレクトメソッド呼び出しの代わりにカスタムイベントを使用する理由
- 18. CSSプロパティテーブルの代わりに浮動小数点数を使用する理由
- 19. C++でリファレンスの代わりにシャローコピーを使用する理由は?
- 20. jmeterでJDBCサンプラーの代わりにJDBC postproecssorを使用する理由
- 21. Singeltonパターンの代わりにZend_Registryを使う理由は?
- 22. コンストラクタの代わりにJavaでsetterを使う理由は?
- 23. データセット。代わりにクエリアダプタまたはテーブルアダプタを使用する理由
- 24. IISの代わりにWaWebHostでWebRoleを実行する理由
- 25. IOErrorEvent.IO_ERRORの代わりにEvent.OPENをディスパッチする理由
- 26. Site Catalystでイベントの代わりにページビューを使用できない理由
- 27. 1の代わりに "undefined"を返す理由
- 28. customattributeを使用する代わりにコントローラーのアクションの承認を処理する代わりの方法
- 29. Microsoft Azure Webサイトでログ用のブロブを追加する代わりにブロックブロブを使用する理由
- 30. ポリマーがウェブパックの代わりにバアを好む理由
あなたはどのキュークラスを見ていますか? –
c# 'Queue'クラス – javapowered
C#では複数のキュークラスが利用できます。たとえば、[System.Collections.Queue](http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx)、[System.Collections.Generic.Queue(T)](http ://msdn.microsoft.com/en-us/library/7977ey2c.aspx)、または[System.Messaging.MessageQueue]の略語を使用している可能性があります(http://msdn.microsoft.com/en-us/ /library/system.messaging.messagequeue(v=VS.100).aspx)、3つの例と同じです。 –