‫تفاوت list با arrayList ؟
[ general ]

List یک اینترفیسی هست که کلاس ArrayList اون رو Implement می کنه؛ ولی پیش از اون باید به یک نکته ای اشاره کنم؛ یک نوع برنامه نویسی ای وجود داره، به نام Programming To Interface که بصورت خلاصه، می گه رفتار های کلاس ها رو در قالب Interface تعیین کنیم، و اون هارو تو اون کلاس ها Implement کنیم، و هر جایی که به پیاده سازی ای از این کلاس ها نیاز داشتیم، از همین اینترفیس ها استفاده کنیم.

حالا بریم سر پرسش اصلی، چرا باید به جای ArrayList، از List ها استفاده کنیم؟

در کل پیاده سازی های متفاوتی از List وجود داره مثل LinkedList و Stack، و اگه از اینترفیس List، بجای خود کلاس پیاده سازی شده بطور مستقیم استفاده کنیم، انعطاف پذیری کدمون رو بالاتر می بریم. برای نمونه، فکر کنین که یه اینترفیس داریم، که نوع برگشتی یکی از متد های اون List هست؛ حالا هر کسی که بخواد از اون متد استفاده کنه، می تونه بسته به نیازش اونو تو پیاده سازی مورد نظرش داشته باشه. پس در نتیجه، این کار بیشتر برای رعایت اصول برنامه نویسی و قوانین شی گراییه. برای مطالعه بیشتر، لینک های زیر توصیه می شن:

Programming To Interface Why List as ArrayList (1) Why List as ArrayList (2)