問題タブ [linkedhashset]

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 投票する
3 に答える
17277 参照

java - LinkedHashset のコンテンツを新しい ArrayList にコピーしていますか?

最初にいくつかのコンテンツを持つlistViewがあります。取得したコンテンツが同じ場合は、重複を削除しましたlinkedhashset。今、linkedhashsetコンテンツをコピーしたい、つまりコンテンツを複製せずに new にコピーしたいArrayList

コピペしてみた

ただし、ArrayList重複コンテンツも含まれます。

例 :

価格.クラス

出力:

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

java - Java HashSet 実装設計

質問を編集して類推を削除し、直接質問します。JDKHashSetの実装は次のようになります。

そしてLinkedHashSet、次のように実装されています:

HashSetクラス:の 3 番目のコンストラクターは、クラスがデフォルトの代わりにバッキング マップとしてa を使用できるようHashSet(int capacity, loadFactor, boolean dummy)にするためだけに存在します。LinkedHashSetLinkedHashMapHashMap

質問:

  • これは良いデザインと見なされますか?
  • サブクラスにバッキングmapタイプを指定させたほうがよいのではないでしょうか?
  • LinkedHashSet上記の実装パラダイムが直感的に思い浮かばなかったため、JDK ソース コードで二重リンク リストが正確にどこにあるかを特定するのに 30 分かかりました。
0 投票する
2 に答える
159 参照

scala - Scala でインデックスを使用して LinkedHashSet をループする

Seq から作成された LinkedHashSet があります。Seq の順序を維持する必要があるため、LinkedHashSet を使用しましたが、Set のように一意性も確保する必要があります。この LinkedHashSet を別のシーケンスと照合して、それらのさまざまなプロパティが同じであることを確認する必要があります。インデックスを使用してループできると思いiましたが、そうではないようです。これが私が達成したいことの例です。

では、LHS の個々の要素にアクセスするにはどうすればよいでしょうか?

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

java - 特定のデータのハッシュ セットを使用した多態的な実装

オブジェクトのセット(親)がありました。特定の条件について、そのオブジェクトに余分なデータを追加したいと考えています。そこで、親から拡張された子クラスを作成し、データを子に入れ、それを親セットに戻します。理論上は可能です。しかし、このようにするのは良い方法ですか?他に良い方法があれば教えてください。

別の方法は、親の代わりに子のセットを作成することです。データを子に直接入れます。しかし、親セットがJsonに変換され、すべての親オブジェクトに余分なフィールドが必要ないため、私はそれを行うことができません.

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

java - LinkedHashMap LRU キャッシュ - 削除される値を特定しますか?

背景情報

このリンクに示されているように、LinkedHashMap を使用して LRU キャッシュを作成できます。基本的に、あなたはただ:

  • リンクされたハッシュ マップを拡張します。
  • 容量パラメーターを指定します。
  • スーパー クラス (LinkedHashMap) をパラメーターで初期化し、その容量、スケーリング ファクター (絶対に使用しないでください) を伝え、項目を挿入/参照順序に保ちます。
  • 容量に違反したときに最も古いエントリを削除するには、removeEldestEntry をオーバーライドします。

私の質問

これはかなり標準的な LRU キャッシュの実装です。しかし、どうすればよいか分からないことの 1 つは、最近十分に使用されていないために LinkedHashMap がエントリを削除したときに通知を受ける方法です。

removeEldestEntry で何らかの通知を提供できることはわかっていますが、新しい要素が基になるマップに挿入 (配置) されたときにキャッシュから削除された要素を取得する方法はありますか? または、キャッシュから削除された最後のアイテムを照会する方法はありますか?

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

java - linkedHashSet でアイテムのインデックスが重複しています

メソッドの出力、つまり true/false にLinkedHashSet基づいて、いくつかの値を追加しています。他の操作を実行しています。add()

重複要素が含まれている場合Setは false を返します。この場合、そのインデックスを別の場所で使用する必要があるため、重複要素のインデックスを知りたいSetです。「リンクされた」コレクションであるため、インデックスを取得する方法が必要ですが、Set/ LinkedHashSetAPI でそのようなものを見つけることができませんでした。