循環キューがありますが、特定のアイテムを特定の位置から取得する方法がわかりません。public E peeki(int index )と汎用イテレータを使用します。イテレータを使用して循環キューの1つの位置からアイテムを取得する
0
A
答えて
0
Nileshが指摘したように、キューはインデックスで使用されることは意図されていません。とにかく、Queueとiteratorを使って独自のクラスを実装し、インデックスで要素を見つけることができます。それは場合、あなたが探している場合は、次の例を考えてみてください。
public class QueueExample<E> {
private Queue<E> queue = new LinkedList<>();
public void add(E item) {
queue.add(item);
}
public E peek(int index) {
E item = null;
Iterator<E> iterator = queue.iterator();
while (iterator.hasNext()) {
E temp = iterator.next();
if (index-- == 0) {
item = temp;
break;
}
}
return item;
}
public static void main(String[] args) {
QueueExample<String> queueExample = new QueueExample<>();
queueExample.add("One");
queueExample.add("Two");
queueExample.add("Three");
System.out.println(queueExample.peek(0));
System.out.println(queueExample.peek(2));
System.out.println(queueExample.peek(1));
System.out.println(queueExample.peek(4));
}
}
出力を(予想通り):
One
Three
Two
null
・ホープ、このことができます。
+0
ええ、これはトリックを行う必要があります。ただし、問題のあるのは、最悪の場合のパフォーマンスがO(n)であるのに対し、より適切なデータ構造(リストなど)を使用すると、最初にO(1)の実行時間 –
0
キューの設計では、それを行うことはできません。キューのヘッダだけを見ることができます。
インデックスで要素にアクセスする場合は、[キュー]の代わりに[リスト]を使用します。
関連する問題
- 1. ArrayListを使用して循環キューを実装する
- 2. 循環キューの短所ですか?
- 3. SimpleAdapterを使用してスピナーから選択したアイテムの位置を取得する方法
- 4. イテレータを循環させるには?
- 5. Firebaseからのアイテムの位置を取得
- 6. アイテムの位置を取得ListViewにLongClicked
- 7. C++で循環キューを使用してキューを実装するにはどうすればよいですか?
- 8. 循環キューを印刷する
- 9. Video.jsを使用してVTTチャプタートラックからキューを取得する
- 10. APIレスポンスから1つのアイテムを取得しますか?
- 11. アンドロイドウェアを使用してデバイスの位置を取得する
- 12. イテレータと循環参照のC++コンテナ
- 13. キューから最後のn個のアイテムを取得する
- 14. WebStorageから1つのグループの全アイテムを取得する
- 15. タッチ位置swiftからSCNNode環境でベクトルを取得
- 16. SDKを使用してPodioアイテムをデータベースから取得し、PodioからIDを使用して取得する
- 17. キューを循環アレイとして実装する理由
- 18. Androidポップアップメニュークラスで選択したアイテムの位置を取得する
- 19. JuiceUI - 新しいアイテムの位置を取得する方法draggable?
- 20. visualbasic6の循環キューの実装
- 21. CollectionViewアイテムを循環的にページングする
- 22. Cの循環キューを持つデータ構造
- 23. pthreadsを持つロックレス循環キュー。気にするものは何ですか?
- 24. TelephonyManagerを使用して位置を取得するjava.lang.SecurityException
- 25. JavaScriptを使用して地理的位置を取得する
- 26. HostingEnvironment.Impersonate()を使用して位置情報フォームを取得する
- 27. JavaScriptを使用してDevExpress ListBoxからアイテムを取得する
- 28. Observableを使用してFirebaseListObservableからアイテムを取得する
- 29. レイアウトのアイテムの位置を取得する(xとyのパラメータ)
- 30. recyclerviewからseekbarの位置を取得していますか?
ようこそStackOverflow。 [ツアー]を取ってください。 よくある質問stackoverflow.com/help/how-to-ask、 [mcve]を作成してください。 – Yunnosch