問題タブ [nosuchelementexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java Scanner が新しいインスタンスで nextLine を取得しない問題
上記のコードを実行すると、最初の応答が完全に返されます。2 番目の応答を要求しようとすると、次のように返されます。
なぜこのエラーが返されるのでしょうか? メソッド askForProperty が呼び出されるたびに、スキャナは完全に新しいインスタンスになります! 入力ストリームとして System.in と何か関係がありますか?
java - コンシューマ スレッドが最後の要素を 2 回削除しないようにするにはどうすればよいですか?
質問:
- 最後の要素を削除しようとすると NoSuchElementException が発生するのはなぜですか?
- どうすれば修正できますか?
LinkedList に整数を追加/削除する 3 つのクラス (以下を参照) があります。削除するスレッドが最後の要素に到達するまで、すべてが正常に機能します。
両方のスレッドがそれを削除しようとしているようです。最初のものは成功しますが、2 番目のものはできません。しかし、私は synchronized-method/synchroniced-attribute +!sharedList.isEmpty()
がそれを処理すると思っていました。
Class Producer: このクラスは、乱数を作成し、それらをsharedListに入れ、数値を追加したことをコンソールに書き込み、中断されると停止することになっています。このクラスのスレッドは 1 つだけ必要です。
クラス Consumer:このクラスは、sharedList に最初の要素が存在する場合、それを削除することになっています。実行は、 sharedListが空になるまで (中断された後) 続行する必要があります。このクラスの複数 (少なくとも 2 つ) のスレッドが必要です。
Class MainMethod:このクラスは、スレッドを開始および中断することになっています。
例外:これはまさに私が受け取る例外です。
スレッド「Thread-2」での例外 java.util.LinkedList.getFirst(LinkedList.java:126) での java.util.NoSuchElementException java.util.LinkedList.element(LinkedList.java:476) での Consumer.removeListElement(Consumer. java:29) Consumer.run(Consumer.java:20) で
android - Android の Queue poll() 呼び出しが NoSuchElementException をスローする
キューの実装があります。デキューを実行するには、poll() API を使用してヘッドを削除しますが、NoSuchElementException をスローしてはなりません。なぜこれが起こるのか誰にも説明できますか?キューにデキューするのに十分なデータがあります。
編集:
スタックトレース:
03-04 14:58:50.205: W/System.err(7937): java.util.NoSuchElementException 03-04 14:58:50.205: W/System.err(7937): java.util.LinkedList.removeFirstImpl ( LinkedList.java:689) 03-04 14:58:50.205: W/System.err(7937): java.util.LinkedList.removeFirst(LinkedList.java:676) 03-04 14:58:50.205: W/ System.err(7937): java.util.LinkedList.poll(LinkedList.java:895) 03-04 14:58:50.205: W/System.err(7937): com.android.testapp.Queue.deQueue で(Queue.java:37) 03-04 14:58:50.205: W/System.err(7937): com.android.testapp.DisplayData.run (LogViewActivity.java:1164) で
編集2:
エンキュー
これは、Bluetooth を介して受信したデータを bluetooth.class のキューに入れるために使用します。tempByteBufRead は Bytebuffer です。そして、これは別のスレッドで行われます。
デキュー
これが私がデキューする方法です。これは別のクラスファイルにあります。これは、テキスト ビューにデータを表示するために使用される別のスレッドです。
java - 各要素を出力して検証した後でも、Iterable は NoSuchElementException をスローします。
たくさんのMap<Integer, TreeSet<Double>>
オブジェクトがあり、値を別のメソッドに渡しています。私はNoSuchElementException
そのメソッドを取得したので、デバッグを開始し、への呼び出しMap#values()
がこの例外をスローすることを確認しました。しかし、値をループすると、すべての値が完全に出力されます。この問題の原因となっているコード スニペットは次のとおりです。
署名はgetMeanPlot(Iterable<TreeSet<Double>>)
.
2 番目のメソッドに渡される直前に iterable はどのように正しいのですが、2 番目のメソッドが開始されたときに例外をスローしますか?
スタックトレース
スタック トレースは、Maps.EntryTransformer
オブジェクトToRescaledValueMap
が原因であることを示しています。トレースは次のとおりです。
これは Guava の遅延初期化と何か関係がありますか? メソッドを使用する代わりに、独自の小さなメソッドを作成することもできますが、Maps#transformEntries
このバグの背後にある理由がわからないということは...まあ...私を悩ませています。エントリの変換は次のとおりです。
編集:
- これが問題かどうかはわかりませんが
Iterable<TreeSet<Double>
、getMeanPlot
. そこでも問題なく印刷され、例外がスローされます。 - 変数名にアンダースコアを使用していることをお詫びします。変数は、コードの背後にある数学で使用している添字を反映しています。命名規則については承知していますが、このコードでは、変数を見ただけでその数学的意味を認識できるようにすることに重点を置いていました。
java - 「スレッド「メイン」java.util.NoSuchElementExceptionで例外が発生し続けます」
そのため、(コマンド ライン引数から) テキスト ファイルを読み取る Java で簡単なプログラムを作成しようとしています。ユーザーは、入力した数値がテキスト ファイルに含まれているかどうかを確認できます。
実行しようとするたびに、次のようになります。
これに似たプログラムを実行しましたが、問題はありませんでした。私が間違っていることを誰かが知っていますか?