CodeGym /وبلاگ جاوا /Random-FA /تبدیل آرایه به ArrayList در جاوا
John Squirrels
مرحله
San Francisco

تبدیل آرایه به ArrayList در جاوا

در گروه منتشر شد
سلام! در درس امروز، در مورد نحوه راه اندازی آرایه در جاوا و نحوه تبدیل آرایه به آرایه صحبت خواهیم کرد. آرایه‌ها توسعه‌ای از کلاس Container در جاوا هستند و می‌توانند به عنوان راهی برای نگهداری موقت مجموعه‌ای از انواع داده‌های اولیه در زمانی که کمیت داده‌ها به طور خاص مشخص باشد، مفید باشند. اما آرایه ها هنگام ایجاد ثابت هستند، به این معنی که وقتی یک آرایه ایجاد می کنید، نمی توانید تعداد آیتم هایی را که در آن نگهداری می شود تغییر دهید. باید به یاد داشته باشید که چگونه یک آرایه را در جاوا مقداردهی اولیه کنید. به نظر می رسد این است:
datatype[] isArray;
جایی که نوع داده هر نوع داده اولیه مانند int، float، long یا حتی String است. همچنین می‌توانید براکت‌ها را بعد از اعلامیه مانند زیر قرار دهید:
datatype isArray[];
بنابراین چگونه می توانیم این آرایه استاتیک را با تعداد مجموعه ای از عناصر بگیریم و آن را به یک ArrayList تبدیل کنیم؟ خب، ابتدا بیایید ببینیم ArrayList چیست.

ArrayList

یک ArrayList ممکن است نامی مشابه با یک آرایه داشته باشد اما به طور کاملا متفاوتی با آن رفتار می شود. دلیلش این است که یک ArrayList کلاس Container را گسترش نمی دهد، کلاس List را گسترش می دهد. و این بدان معناست که همه چیز به گونه ای متفاوت اداره می شود. برای یک چیز، به دلیل اینکه یک لیست است، می توانید آن را به طور متفاوتی دستکاری کنید. شما می توانید اندازه ArrayList را با استفاده از add(element) کم یا زیاد کنید ، که عنصر را در انتهای لیست قرار می دهد و در صورت لزوم اندازه را یک عدد افزایش می دهد. یا می توانید از trimToSize() استفاده کنید که هر شاخص خالی را در انتها حذف می کند و ArrayList را به اندازه فعلی آن برش می دهد. بنابراین می توانید ببینید که استفاده از ArrayList به جای استفاده از آرایه چند مزیت دارد. در ادامه ما دو روش برای تبدیل از Array به ArrayList و نحوه بازگشت در صورت نیاز به شما نشان خواهیم داد.

حرکت از Array به ArrayList و ArrayList به Array در جاوا

بنابراین، فرض کنید که شما برنامه‌ای نوشته‌اید تا فهرستی از تعداد مهره‌ها و پیچ‌هایی که شرکت شما برای تعمیر درختان گربه در اختیار دارد، نگه دارد. برای سال‌ها، شما فقط به 30 نوع مختلف از آنها نیاز دارید، بنابراین استفاده از یک آرایه برای پیگیری آسان است. اما اکنون مشتری جدیدی دارید که از شما می‌خواهد 5 نوع دیگر را ذخیره کنید. چگونه می توانید برنامه خود را تغییر دهید و تمام داده های خود را حفظ کنید و از انجام مجدد این کار در هنگام انتخاب مشتری دیگر جلوگیری کنید؟ درست است! ArrayList! بنابراین چگونه می توان یک آرایه جاوا را به یک ArrayList تبدیل کرد؟ سه روش وجود دارد. با استفاده از روش .asList() آرایه های جاوا دارای یک ابزار عالی هستند که با نگاه کردن به API به نام .asList() می توانید آن را ببینید . بنابراین شما فقط می توانید در این مطلب بنویسید:
boltInventory.asList(bolts);
مشکل این روش این است که یک ArrayList واقعی ایجاد نمی کند. کاری که انجام می دهد ایجاد لیستی است که اندازه ثابت و غیرقابل تغییر است. بنابراین هنوز نمی توانید اندازه را به صورت پویا تغییر دهید. تلاش برای افزودن یا حذف عناصر باعث ایجاد استثنا می شود. بنابراین در حالی که این کاربردهای خود را دارد، یک تبدیل واقعی نیست. اما ما می توانیم از این استفاده کنیم. استفاده از .asList() به عنوان یک آرگومان این دومین راه برای تبدیل آرایه به لیست در جاوا است. از آنجایی که متد .asList() یک List ایجاد می کند، می توانیم از آن برای ارسال یک مرجع به ArrayList واقعی خود استفاده کنیم. در اینجا نحوه مقداردهی اولیه یک ArrayList آمده است:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
این یک ArrayList ایجاد می کند که ده سلول خالی دارد. با این حال، () در پایان می تواند برای ارسال آرگومان برای پر کردن ArrayList استفاده شود. بنابراین با ترکیب با متد .asList ، خواهید داشت:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
این لیست ایجاد شده توسط متد ()asList را به ArrayList منتقل می کند، بنابراین اکنون می توانید آن را به صورت پویا در صورت نیاز دستکاری کنید. استفاده از متد Collections.addAll() راه دیگر برای تبدیل آرایه به ArrayList در جاوا استفاده از این روش است. محتویات آرایه را به ArrayList ارسال می کند. نحو عمومی این روش به صورت زیر است:
Collections.addAll(c, T);
جایی که c مقصد و T چیزی است که در حال عبور است. بنابراین برای مثال ما، نحو به این صورت خواهد بود:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
با این کار کل محتویات پیچ های Array به ArrayList جدید منتقل می شود. تبدیل یک ArrayList به یک آرایه ممکن است زمانی لازم باشد که یک ArrayList را به یک آرایه در جاوا تبدیل کنید. اگر این کار را انجام دهید، ArrayList یک متد .toArray(a) دارد که a مقصد است. بنابراین برای مثال ما، نحو این خواهد بود:
Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
هنگامی که یک لیست را به آرایه در جاوا به این شکل تغییر می دهید، یک کپی عمیق ایجاد می کنید. یعنی تمام ارجاعات به آرایه با ارجاعات به ArrayList متفاوت است. بنابراین می توانید داده های موجود در Array را بدون تغییر داده های ذخیره شده در ArrayList دستکاری کنید. تبدیل یک لیست جاوا به آرایه زمانی که نیاز به آزمایش داده ها دارید مفید است.

نتیجه

آرایه ها برای دسترسی سریع و دستکاری سریع مجموعه داده های کوچکتر بسیار مفید هستند، اما عدم توانایی در تغییر اندازه آنها به این معنی است که آنها به سرعت کارایی خود را برای استفاده طولانی مدت از دست می دهند. ArrayList این انعطاف پذیری و توانایی درج و حذف گره ها را در صورت نیاز به شما می دهد. یادگیری نحوه تبدیل یک آرایه جاوا به لیست، کارایی کلی برنامه های شما را بهبود می بخشد و زمان اجرا آنها را نیز بهبود می بخشد.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION