CodeGym /مدونة جافا /Random-AR /تحويل Array إلى ArrayList في Java
John Squirrels
مستوى
San Francisco

تحويل Array إلى ArrayList في Java

نشرت في المجموعة
أهلاً! في درس اليوم، سنتحدث عن كيفية تهيئة مصفوفة في Java وكيفية تحويل المصفوفة إلى قائمة مصفوفات. المصفوفات هي امتداد لفئة الحاوية في Java ويمكن أن تكون مفيدة كوسيلة للاحتفاظ مؤقتًا بمجموعة من أنواع البيانات الأولية عندما تكون كمية البيانات معروفة على وجه التحديد. لكن المصفوفات تكون ثابتة عند إنشائها، مما يعني أنه عند إنشائها، لا يمكنك تغيير عدد العناصر التي تحتوي عليها. يجب أن تتذكر كيفية تهيئة مصفوفة في جافا؛ تبدو هكذا:
datatype[] isArray;
حيث أن نوع البيانات هو أي نوع بيانات بدائي مثل int أو float أو long أو حتى String. يمكنك أيضًا وضع الأقواس بعد الإعلان كما يلي:
datatype isArray[];
إذًا كيف نأخذ هذه المصفوفة الثابتة بعدد محدد من العناصر ونحولها إلى ArrayList؟ حسنًا، أولاً، دعونا نلقي نظرة على ماهية ArrayList.

قائمة المصفوفة

قد يكون لقائمة ArrayList اسم مشابه للمصفوفة ولكن يتم التعامل معها بشكل مختلف تمامًا. وذلك لأن ArrayList لا يقوم بتوسيع فئة الحاوية، بل يقوم بتوسيع فئة القائمة. وهذا يعني أنه يتم التعامل مع كل شيء بشكل مختلف. لسبب واحد، لأنها قائمة، يمكنك التعامل معها بشكل مختلف. يمكنك زيادة أو تقليل حجم ArrayList باستخدام add(element) الذي يضع العنصر في نهاية القائمة ويزيد الحجم بمقدار واحد إذا لزم الأمر. أو يمكنك استخدام TrimToSize() الذي يزيل أي مؤشرات فارغة في النهاية ويقطع ArrayList إلى حجمه الحالي. لذلك يمكنك أن ترى أن هناك بعض المزايا لاستخدام ArrayList بدلاً من مجرد مصفوفة. سنعرض لك بعد ذلك طريقتين للتحويل من Array إلى ArrayList وكيفية الرجوع مرة أخرى إذا كنت بحاجة إلى ذلك.

الانتقال من Array إلى ArrayList وArrayList إلى Array في Java

لنفترض أنك كتبت برنامجًا للاحتفاظ بجرد لعدد الصواميل والمسامير المتوفرة لدى شركتك لإصلاح أشجار القطط. لسنوات، كنت تحتاج فقط إلى 30 نوعًا مختلفًا منها، لذلك كان من السهل استخدام مصفوفة للتتبع. ولكن الآن لديك عميل جديد يطلب منك تخزين 5 أنواع إضافية. كيف يمكنك تغيير برنامجك والاحتفاظ بجميع بياناتك، وتمنع نفسك من الاضطرار إلى القيام بذلك مرة أخرى عند اختيار عميل آخر؟ صحيح! قائمة المصفوفات! إذًا كيف يمكنك تحويل Java Array إلى ArrayList؟ هناك ثلاث طرق. باستخدام طريقة .asList() تحتوي مصفوفات Java على أداة رائعة يمكنك رؤيتها عندما تنظر إلى واجهة برمجة التطبيقات (API) تسمى .asList() . لذلك يمكنك فقط الكتابة في هذا:
boltInventory.asList(bolts);
المشكلة في هذه الطريقة هي أنها لا تنشئ قائمة ArrayList حقيقية. ما يفعله هو إنشاء قائمة ثابتة الحجم وغير قابلة للتغيير. لذلك لا يزال يتعذر عليك تغيير الحجم بطريقة ديناميكية. ستؤدي محاولة إضافة عناصر أو إزالتها إلى حدوث استثناء. لذلك، على الرغم من أن هذا له استخداماته، إلا أنه ليس تحويلاً حقيقيًا. ولكن يمكننا استخدام هذا. استخدام .asList() كوسيطة هذه هي الطريقة الثانية لتحويل مصفوفة إلى قائمة في Java. نظرًا لأن الطريقة .asList() تنشئ قائمة، فيمكننا استخدامها لتمرير مرجع إلى ArrayList الفعلي الخاص بنا. إليك كيفية تهيئة ArrayList:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
سيؤدي هذا إلى إنشاء قائمة ArrayList تحتوي على عشر خلايا فارغة. ومع ذلك، يمكن استخدام () في النهاية لتمرير وسيطة لملء قائمة ArrayList. إذن، بالدمج مع التابع .asList ، يصبح لديك:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
يؤدي هذا إلى تمرير القائمة التي تم إنشاؤها بواسطة الأسلوب .asList() إلى ArrayList، لذا يمكنك الآن معالجتها ديناميكيًا حسب حاجتك. استخدام طريقة Collections.addAll() هناك طريقة أخرى لتحويل Array إلى ArrayList في Java وهي استخدام هذه الطريقة. يقوم بتمرير محتويات المصفوفة إلى ArrayList. بناء الجملة العام لهذه الطريقة هو:
Collections.addAll(c, T);
حيث c هي الوجهة و T هو ما يتم تمريره. لذلك، في مثالنا، سيبدو بناء الجملة كما يلي:
ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
سيؤدي هذا إلى تمرير محتويات ArrayList بالكامل إلى ArrayList الجديدة. تحويل ArrayList إلى Array قد يكون هناك وقت تحتاج فيه إلى تحويل ArrayList إلى Array في Java. إذا قمت بذلك، فإن 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);
عندما تقوم بتغيير قائمة إلى مصفوفة في Java مثل هذا، فإنك تقوم بإنشاء نسخة عميقة. أي أن جميع المراجع إلى Array تختلف عن المراجع إلى ArrayList. حتى تتمكن من معالجة البيانات الموجودة في Array دون تغيير البيانات المخزنة في ArrayList. من المفيد تحويل قائمة جافا إلى مصفوفة عندما تحتاج إلى اختبار البيانات.

خاتمة

تعتبر المصفوفات مفيدة جدًا للوصول السريع والمعالجة السريعة لمجموعات البيانات الصغيرة، ولكن عدم القدرة على تغيير حجمها يعني أنها تفقد كفاءتها بسرعة عند الاستخدام طويل المدى. تمنحك ArrayList المرونة والقدرة على إدراج العقد وإزالتها حسب الحاجة. سيؤدي تعلم كيفية تحويل Java Array إلى قائمة إلى تحسين الكفاءة الإجمالية لبرامجك وتحسين أوقات تشغيلها أيضًا.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION