現在、リストのリストに取り組んでいます。私はこの質問に出くわしました(つまり、選択した回答です)。リストのリスト リストのリスト
@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 万近くまで増加する可能性があります。