"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية نسخ مصفوفة ثنائية الأبعاد بشكل صحيح في Java للحفاظ على التعديلات؟

كيفية نسخ مصفوفة ثنائية الأبعاد بشكل صحيح في Java للحفاظ على التعديلات؟

تم النشر بتاريخ 2024-11-08
تصفح:722

How to Properly Copy a 2D Array in Java to Preserve Modifications?

الحفاظ على تعديلات المصفوفة ثنائية الأبعاد مع النسخ

في Java، عند إنشاء نسخ من الكائنات، من الضروري فهم سلوك التعيين المرجعي. في السيناريو المحدد، يتم تعريف صفيفتين ثنائي الأبعاد باسم الحالي والقديم، بالإضافة إلى طرق لنسخ المحتويات.

تقوم الطريقة القديمة () بتعيين المصفوفة الحالية إلى القديمة. ومع ذلك، يؤدي هذا فقط إلى نقل المرجع إلى نفس الصفيف في الذاكرة. عند إجراء تحديثات على المصفوفة الحالية، يعكس القديم أيضًا هذه التغييرات، نظرًا لأن كلاهما يشير إلى نفس المصفوفة الأساسية.

تحاول طريقة keepold () تعيين المصفوفة القديمة إلى المصفوفة الحالية. مرة أخرى، يؤدي هذا إلى تحديث المرجع فقط، دون أن يتأثر المصفوفة الحالية الأصلية. ونتيجة لذلك، عند إجراء التحديثات على الحالي، تظل المحتويات القديمة دون تغيير.

لإنشاء نسخة حقيقية من مصفوفة ثنائية الأبعاد في Java، من الضروري نسخ كل عنصر يدويًا. بدلاً من ذلك، للحصول على نسخ أكثر كفاءة، يمكنك استخدام طريقة Arrays.stream().map()...toArray()، التي تستخدم واجهة برمجة تطبيقات التدفقات لإنشاء نسخة من كل صف وتجميعها في مصفوفة جديدة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3