لتحقيق هذا الهدف بأفضل الممارسات، يمكنك استخدام حلقتين متداخلتين. الحلقة الخارجية تكرر عبر mainArray
، والحلقة الداخلية تكرر عبر كل subArray
وتقوم بإضافة العناصر إلى newArray
بالتناوب.
قد يكون الكود كالتالي:
javaArrayList newArray = new ArrayList<>();
for (ArrayList subArray : mainArray) {
for (myObject item : subArray) {
newArray.add(item);
}
}
هذا الكود يتجاوز mainArray
ويأخذ كل subArray
ثم يأخذ العناصر الفردية من كل subArray
ويضيفها إلى newArray
بالتناوب.
المزيد من المعلومات
لزيادة الكفاءة، يمكنك تحسين الحل بتحديد حجم subArray
وعدد العناصر التي تريد استخراجها من كل subArray
في كل دورة. على سبيل المثال، إذا كنت تريد استخراج عنصرين من كل subArray
، فيمكنك تعديل الكود كما يلي:
javaint itemsToTake = 2;
ArrayList newArray = new ArrayList<>();
for (int i = 0; i < itemsToTake; i++) {
for (ArrayList subArray : mainArray) {
if (i < subArray.size()) {
newArray.add(subArray.get(i));
}
}
}
هذا التعديل يأخذ العنصر الأول من كل subArray
ثم العنصر الثاني، وهكذا حتى ينتهي من جميع ال subArray
والعناصر فيها.