コレクション内の個々のオブジェクトにアクセスする方法については、コレクション クラスごとに実装が異なります。たとえば。Arraylist
クラスは個々のオブジェクトを Object の配列として格納しますが、クラスLinkedList
は内部クラスを使用しEntry
て個々のオブジェクトを格納します。ただし、これらのメンバーはカプセル化され、プライベートとしてマークされているため、プログラマには表示されません。この背後にある主な理由は、メソッドの実装方法を気にせずにさまざまな操作を実行するための単純なメソッド セットをプログラマーに提供することです。
私の懸念は、これが可能であれば、LinkedList を魔法のように 2 つのリストに分割して、多くの CPU オーバーヘッドを節約できることです。ここで行うことは、リストの一部 (new Sublist()...) をコピーしてから、元のリストの対応するエントリをクリアすることです。
通常、コレクションを管理し、分割などの操作を実行するメンバーを取得することはありません。ただし、これらのメンバーにアクセスしてパフォーマンスを向上させたい場合は、いつでも独自のクラスを作成できます。これにより、「次」を取得できます。のような事前定義されたクラスの既存のコードをいつでも微調整してLinkedList
、独自のクラスを作成できますMyLinkedList
。または、これらのクラスを拡張して独自のメソッドを作成することもできます。