現在、1つのプロジェクトに取り組んでいます。私は店舗の管理システムを作成しようとしています。問題は、株式のための何らかのコレクションが必要なことです。同じ名前の既存の要素(同じ項目の数を更新する要素)を追加する際に、状態(属性stockLevel)が指定の量に応じて更新されます。誰かがそのようなことをさせるのに最善でなければならないことを知っていますか? Map
,Set
またはList
?重複する要素に最も適したJavaコレクション
答えて
これはa multiset (a.k.a. a bag)となります。独自の実装を簡単にMap<Item, Integer>
としてロールバックするか、既存のクラスの1つ、たとえばGoogle GuavaのMultiset
(stockLevel属性)それは状態だ(同じ項目の数を更新する)すでに同じ名前 に存在する要素を加えながら はに応じて更新してしまうのApache Commonsのコレクションはまたなどを一つ持っているので、Eclipseのコレクションを行う
所定量あなたのユースケースで
、Map
情報を格納するために良好である:
Map<Product, StockLevel>
それの数などの主要Product
とマップを表す値として在庫内:StockLevel
マップ上での反復処理では、HashMap
の挿入注文を維持できませんでしたが、必要であれば問題ありません。あなたは、あなたがマップが(アルファベット順または他の)いくつかのニーズに応じて注文することにしたいということで反復時や挿入順序を保持したい場合は
それにもかかわらず、あなたはより洗練されたマップを使用することができますようTreeMap
やLinkedHashMap
セットは重複する値を許可しませんが、これは解決策ではありません。重複した値を挿入すると無視されます。アイテムのリストを選択し、ループを繰り返して重複を見つけることができます。 if条件を追加してその状態を増やすことができます。
セットやマップで商品を検索するときに、リストを繰り返し繰り返すのはなぜですか?関連するデータだけで複数のアイテムを保持する理由はありません。 –
- 1. のJava - 重複要素
- 2. Javaのコレクションの最適化
- 3. クエリの最適化。重複したサブクエリ
- 4. コレクションに最後の重複エントリを保存する最も良い方法は?
- 5. numpy重複する要素
- 6. アーランは:重複した要素をチェック
- 7. 重複するSQL要求を最適化する値
- 8. ユニークな要素のJavaコレクション
- 9. Java:大規模な重複検出のためにハッシュセットを最適化する
- 10. RSS/Atomフィード内の最も重要な要素
- 11. コレクション - コレクションに要素を追加する
- 12. Javaの8ストリームAPI:最初のコレクション要素
- 13. Javaアプリケーションに最も適したSOAアーキテクチャはどれですか?
- 14. フィルタ[Haskell]の重複要素
- 15. 重複HTML要素タグ
- 16. XAML要素の重複
- 17. 重複要素は、forループ
- 18. DOM要素をJavaScriptからJavaに戻してクリックを最適化する
- 19. 変数尺度で最も重要な要素に丸めますか?
- 20. XMLファイルの重複した要素を削除する方法
- 21. シーケンスの重複要素をクローズする
- 22. forEachFeatureAtPixel関数で重複する要素
- 23. 最も重要なJavaライブラリは何ですか?
- 24. カスタムタグに絶対配置を適用したときに要素が重複する - HTML、CSS
- 25. 配列内の最も重複したオブジェクトを見つける
- 26. 重複したエントリに対処するための最もエレガントな方法
- 27. 共有要素変色して、ステータスとアクションバーの重複要素
- 28. Java KeyStore重複したエイリアス
- 29. 重複に基づいて2D配列要素を合計する最も簡単な方法は?
- 30. リストから重複を削除する:各要素の順序と最後の重複を保持する
リストが適切でないことは明らかです。セットやマップのように思えるのが最も理にかなっていますか?それはあなたがそれにアクセスする方法に依存します。 –
@DaveNewton重複した値を追加することに言及しています。定義は、少なくともこの例では適切ではありません。 –
"状態"を定義できますか?特に、オブジェクト内に埋め込まれている理由は何ですか? – fge