問題タブ [copyonwritearraylist]

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.

0 投票する
1 に答える
149 参照

java - CopyOnWriteArrayList にそのような removeRange() メソッドがないのはなぜですか?

なぜArrayListそのようなメソッドがあり、同時の兄弟にはないのですか?

protected void removeRange(int fromIndex, int toIndex)

それは基本的ではないことに興味があるだけで、回避できます。

0 投票する
4 に答える
2146 参照

java - Java CopyOnWriteArrayList 実装の改善された代替手段はありますか? Java 仕様の変更を要求するにはどうすればよいですか?

CopyOnWriteArrayList はほとんど私が望む動作をしており、不要なコピーが削除された場合、まさに私が探しているものになります。特に、ArrayList の最後に行われた追加については、ArrayList とまったく同じように動作する可能性があります。つまり、実際に毎回新しいコピーを作成する理由はなく、無駄が多くなります。実質的に ArrayList の末尾を制限してリーダーのスナップショットをキャプチャし、新しい項目が追加された後に末尾を更新することができます。

多くのアプリケーションでは、最も一般的なタイプの追加は ArrayList の末尾に追加されるため、この機能強化は価値があるように思われます。

また、追加時にしかコピーできず、サイズ変更が必要かどうかを確認する必要があるため、追加のオーバーヘッドもありません ArrayList はとにかくこれを行う必要があります。

  1. 最後に追加するための不必要なコピーなしでこの動作を行う代替の実装またはデータ構造はありますか (つまり、スレッドセーフで、書き込みがリストの最後に追加されるだけで頻繁な読み取りを許可するように最適化されています)?

  2. CopyOnWriteArrayList の末尾に追加するコピーを削除するために Java 仕様の変更を要求する変更要求を送信するにはどうすればよいですか (サイズ変更が必要な場合を除く)。

私は、独自のカスタム コードを維持して使用するのではなく、コア Java ライブラリでこれが変更されることを本当に望んでいました。

0 投票する
2 に答える
2063 参照

java - Java - リストの同時クリア

次の API を実現する良い方法を見つけようとしています。

クラスはオブジェクトを保存し、processAndClear を呼び出すと、現在保存されているオブジェクトを繰り返し処理し、何らかの方法で処理してから、ストアをクリアします。このクラスはスレッドセーフである必要があります。

明らかなアプローチはロックを使用することですが、私はもっと「並行」したかったのです。これは私が使用するアプローチです:

これにより、オブジェクトを追加しようとするスレッドは、xlearing の完了をロックしたり待機したりすることなく、ほぼ即座に続行できます。これは多かれ少なかれ正しいアプローチですか?

0 投票する
2 に答える
2169 参照

java - テキストファイルデータをArray javaに追加する

Text.txt ファイルから Java の ArrayList にデータを追加したい。

ゲッターとセッターだけで POJO Employee クラスを作成しました。

そして、これは私のメインクラスです:

テキストファイルデータ:

私が欲しいもの:

これに関するどんな助けもかなりのものになるでしょう

0 投票する
2 に答える
200 参照

android - CopyOnWriteArrayList を Bundle オブジェクトに渡す方法は?

MyObjectインターフェイスを実装するデータ構造があり、オブジェクトを Bundle オブジェクトにParcelable渡して新しい Fragment を作成したいと考えています。CopyOnWriteArrayList<MyObject>だから私は試しました

しかし、CopyOnWriteArrayList は ArrayList のサブクラスではないため、メソッド シグネチャと一致しません。

CopyOnWriteArrayList を Bundle オブジェクトに渡す方法はありますか?