1

現在、リストのリストに取り組んでいます。私はこの質問に出くわしました(つまり、選択した回答です)。リストのリスト リストのリスト

@Mario Fusco は、クラスとオブジェクトの抽象化を改善することを指摘しています。正直なところ、ユースケースがすべてのシナリオに当てはまるかどうかはわかりません。たとえば、リスト(リストの)があります:

[[2, 5, 6, 7], [8, 10, 12, 13, 15], [6, 13, 23, 25, 30, 34], [16, 25], [5, 16, 25, 30], [6, 25, 30], [1, 5, 9, 13, 14], [14, 25], [2, 6, 12, 34], [2, 5, 25], [2, 3, 31], [1, 16, 19], [2, 34], [3, 6], [8, 10, 12, 13, 15], [5, 10], [1, 8, 14], [3, 5], [1, 2, 8, 9, 13, 15], [3, 6, 13], [8, 15], [25, 34], [25, 31], [5, 23], [30, 31], [8, 10, 12, 13, 15], [30, 34], [8, 10, 12, 13, 15], [25, 31], [25, 31], [5, 23, 34], [3, 5, 8, 10, 12, 13, 15], [2, 8, 9, 12, 13, 15], [2, 15]]
/* I created it using ArrayList<ArrayList<Integer>> and few previous processing. 

そして、2,5 の出現回数を数えたり、(リストの) リストで重複したセットを見つけたりするなど、単純な処理を行う必要があります。内部リストのクラスを作成し、それらのオブジェクトをリストに追加するのは賢明でしょうか (各オブジェクトにはこれらの数値の ArrayList が含まれます)。現時点で利用可能なオプションと少し混乱しており、どちらの方法がより適切に機能するかを理解する必要があります. いくつかの例、ユースケースを説明していただければ、私は圧倒されます。

編集:私はPythonのバックグラウンドから来ており、再生リストやリストのリストなどに非常に友好的です。しかし、大規模なデータセットでの作業は少し問題でした(攻撃的な意図はありません。Cythonのような良いものがありますが、それは要件のためだけです)。問題の一部を Java に移行しました。

質問の方向を変えて、メモリ管理と CPU の観点からどちらのアプローチが優れているか尋ねてもよろしいですか? サブリストの数は、それぞれ 2 から 10 の数字を含む、50 万から 100 万近くまで増加する可能性があります。

4

5 に答える 5

1

そして、2,5 の出現回数を数えたり、(リストの) リストで重複したセットを見つけたりするなど、単純な処理を行う必要があります。内部リストのクラスを作成し、それらのオブジェクトをリストに追加するのは賢明でしょうか (各オブジェクトにはこれらの数値の ArrayList が含まれています)。

必要なのは、データに対して簡単な操作を実行することだけのようです。その場合は、リストのリストのリストを使用した方がよいでしょう。これにより、コードが操作しやすくなり、メンテナンスが容易になり、効率的になります。したがって、アルゴリズムを効率化し、不要な複雑さを避けたいと考えています。

@Mario Fusco は、クラスとオブジェクトの抽象化を改善することを指摘しています。

一般に、 を使用してビジネス オブジェクトをモデリングしている場合はlist of list of list、@Mario Fusco が正しく指摘しているため、メンテナンス シナリオや可読性の問題が発生するため、お勧めできません。ビジネス オブジェクトをモデル化するときは、ドメインの専門用語を使用することをお勧めします。

于 2013-04-30T10:56:56.517 に答える