+1 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)
ویرایش شده قبل توسط

دو کلاس Vector و ArrayList به نظر می رسد تقریبا کارایی های یکسانی دارند. می خواستم بدانم چه تفاوت هایی بین آنها وجود دارد و کاربرد هر کدام در چه مواردی است؟

2 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)

می توان تفاوت های زیر را ذکر کرد:

  1. از نظر API و متد های عرضه شده توسط این دو کلاس، بسیار به یکدیگر شبیه هستند و  تقریبا کار یکدیگر را انجام می دهند.
  2. چند thread می توانند بصورت همزمان از Vector استفاده کنند در حالی که ولی ArrayList اینطور نیست در نتیجه سرعت ArrayList از Vector بیشتر است.
  3. هر دو کلاس Vector و ArrayList می توانند تعداد نامشخصی عنصر داشته باشند، Vector برای مدیریت این کار هر زمانی که سایز اولیه اش پر می شود سایز خود را دو برابر می کند در حالی که ArrayList در این موقعیت 50٪ از سایز فعلی خود را به خودش اضافه می کند.
0 امتیاز
قبل توسط (434 امتیاز)
عمده ترین تفاوت برمیگرده به امکان استفاده همزمان توسط چندین پروسه(Thread) بصورت همزمان از این نوع ها که در Vector امکانش و جود نداره ولی در ArrayList وجود داره، البته مانند هر کد دیگری که قابلیت اینکار برای اون وجود داره باید این همزمانسازی توسط برنامه نویس مدیریت بشه.ضمنا برای اینکه ArrayList  هم مانند Vector بشه(در زمینه همزمانی) میشه از متد Collections.synchronizedList استفاده کرد. در مجموع به نظر میاد به دلیل جدیدتر بودن پیاده سازی ArrayList مزایایی مثل کارایی بیشتر و بهینه بودن استفاده از حافظه در آن نسبت به Vector وجود دارد.

سوالات مشابه

0 امتیاز
1 پاسخ 404 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
0 پاسخ 332 بازدید
+1 امتیاز
1 پاسخ 503 بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
+2 امتیاز
1 پاسخ 766 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Milad (1.3هزار امتیاز)
+1 امتیاز
2 پاسخ 1.6هزار بازدید
+1 امتیاز
1 پاسخ 502 بازدید
+2 امتیاز
2 پاسخ 837 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط FMP (89 امتیاز)
+1 امتیاز
1 پاسخ 1.4هزار بازدید
+2 امتیاز
2 پاسخ 789 بازدید
...