2016-04-07 5 views
1

LinkedListによる操作は、二重リンクリストを使用しているためメモリ内でビットシフトが必要ないため、ArrayListより高速です。しかし、ArrayListの場合、配列から要素が削除されると、すべてのビットがメモリ内でシフトされます。LinkedListの二重リンクリストとJavaのarrayListの違いは何ですか?

リンクされたリストがデータ操作のためにこの利点を達成するための内部メカニズムは何ですか?

答えて

1

ArrayListは、要素を格納する配列を使用します。だから、配列はこの

[1][2][3][4] 

のような4つの要素を持っている可能性があり、第三の要素を削除することは残して、プログラマが手動で取得する要素を移動しなければならない意味

[1][2][empty][4] 

[1][2][4] 

しかし、リンクされたリストはポインタを使用しているので、上記の例では、2番目のノード(値2のポインタ)はポインタを更新して、4を格納するノードを指すようにすることができます。

+0

リンクされたリストはポインタを使用し、ArrayListはインデックス単位で動作します。その理由は、ArrayListでシフトが必要です。右? – Alchemist

+0

正確に。ところで、私の答えがあなたにとって有益だったなら、あなたは答えとして=印をつけていただければ幸いです。 – nhouser9

関連する問題