المصفوفات ثلاثية الأبعاد وما بعدها
جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 7 من 59.
تمامًا كما يمكنك إنشاء مصفوفات ثنائية الأبعاد (مصفوفات من مصفوفات)، يمكنك إنشاء مصفوفات ثلاثية الأبعاد (مصفوفات من مصفوفات من مصفوفات)، ومصفوفات رباعية الأبعاد، وهكذا. تُسمى هذه المصفوفات متعددة الأبعاد.
يمكن تصوّر array ثلاثي الأبعاد على أنه مجموعة من array ثنائية الأبعاد مكدّسة فوق بعضها، لتشكّل بنية شبيهة بالمكعّب. يتم الوصول إلى كل عنصر في array ثلاثي الأبعاد باستخدام ثلاثة مؤشرات: واحد لـ depth (أيّ array ثنائي الأبعاد)، وواحد للصف، وواحد للعمود.
إليك كيفية التصريح عن وتهيئة مصفوفة ثلاثية الأبعاد في Java:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: نوع العناصر التي ستحتوي عليها المصفوفة.array_name: اسم المصفوفة.
depth: عدد المصفوفات ثنائية الأبعاد (العمق).rows: عدد الصفوف في كل مصفوفة ثنائية الأبعاد.columns: عدد الأعمدة في كل مصفوفة ثنائية الأبعاد.
على سبيل المثال، لإنشاء مصفوفة ثلاثية الأبعاد من الأعداد الصحيحة بأبعاد 2x3x4، ستكتب:
int[][][] cube = new int[2][3][4];يمكنك أيضًا تهيئة مصفوفة ثلاثية الأبعاد مباشرةً:
int[][][] cube = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};التحدي
سهلاكتب برنامجًا يأخذ ثلاثة معاملات صحيحة: depth وrows وcols. يجب أن ينشئ مصفوفة ثلاثية الأبعاد من الأعداد الصحيحة بالأبعاد المحددة، ويهيّئ كل عنصر في المصفوفة بحاصل ضرب مؤشرات العمق والصف والعمود الخاصة به (بدءًا من 1).
على سبيل المثال، يجب أن تكون قيمة العنصر عند [d][r][c] هي (d + 1) * (r + 1) * (c + 1).
أخيرًا، اطبع المصفوفة ثلاثية الأبعاد الناتجة إلى وحدة التحكم باستخدام حلقات متداخلة. يجب أن يبدو الإخراج كما يلي:
Depth 0:
1 2 3 4
2 4 6 8
3 6 9 12
Depth 1:
2 4 6 8
4 8 12 16
6 12 18 24جرّب بنفسك
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int depth = scanner.nextInt();
int rows = scanner.nextInt();
int cols = scanner.nextInt();
int[][][] array3D = new int[depth][rows][cols];
// اكتب الكود الخاص بك أدناه
// اطبع المصفوفة ثلاثية الأبعاد
for (int d = 0; d < depth; d++) {
System.out.println("Depth " + d + ":");
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
System.out.print(array3D[d][r][c] + " ");
}
System.out.println();
}
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكمتدرّب بنفسك: مترجم Java عبر الإنترنت