تفاوت LinkedList و ArrayList

سلام در این مقاله به بررسی تفاوت LinkedList و ArrayList می پردازیم LinkedList و ArrayList از List پیاده سازی (Implement) شده اند ولی تفاوت های بسیار زیادی باید یک دیگر دارند در ادامه هر دو را مورد بررسی قرار میدهیم تا تفاوت آنها آشکار شود با ما همراه باشید.
 
LinkedList و ArrayList از نوع non synchronize یا غیرهمگام هستند اگر synchronize بودن  فقط می توانستیم در از یک ترد برای مثلا اضافه کردن یا حذف کردن از آن استفاده کنیم ولی non synchronizeبودن آنها باعث می شود از هر جایی که بخواهیم به آن اضافه یا حذف کنیم.

ArrayList (لیستی از آرایه)

در داخل ArrayList از آرایه پویا (dynamic) استفاده می شود.
دستکاری (Manipulation) در ArrayList بسیار کند است به خاطر اینکه از آرایه استفاده می کند زمانی که یک عضو از ArrayList حذف شود تمامی المان ها (Elements)باید Shift بخورند و جابه جا شوند.
ArrayList می تواند فقط نقش List را بازی کند چون فقط از List پیاده سازی شده است.
ArrayList بهترین نوع ذخیره سازی و دسترسی به داده است ولی همانطور که گفتیم زمانی که بخواهیم بروی آن ویرایش یا جذف یا جستجو  انجام دهیم کند است.

LinkedList (لیست پیوندی)

LinkedList از دو خانه برای ذخیره سازی استفاده می کند (یک مقدار Value و مقدار دوم Pointer یا شماره خانه بعدی که باید با آن کار شود.)
LinkedList سرعت بیشتری نسبت به Arraylist دارد چون از دو خانه به منظور ذخیره و نگه دارنده (Pointer) استفاده می کند و نیاز به Shift هنگام حذف ندارد.
از LinkedList می توان به عنوان List یا Queue استفاده کرد زیرا از List و Queue (صف) Implement شده است.
زمانی که بخواهیم بروی داده دستکاری انجام دهیم بهترین نوع List که می توان مورد استفاده قرار داد LinkedList  است همانطور که گفتیم Shift ندارد پس سرعت بالایی دارد.
 
این مقاله نیز به پایان رسید.
موفق و موید باشید.

مطالعه بیشتر