מהו מערך?

מערך הוא אוסף של ערכים מאותו טיפוס, שמאוחסנים ברצף בזיכרון. לכל איבר יש אינדקס (מספר מיקום) שמתחיל מ-0.

10 [0] 25 [1] 3 [2] 42 [3] 7 [4] arr
מערך בגודל 5 עם ערכי int. האינדקס מתחיל מ-0 ומסתיים ב-4.

הגדרה ויצירה

// הצהרה + יצירה
int[] arr = new int[5]; // מערך בגודל 5, כל האיברים מאותחלים ל-0

// הצהרה + אתחול בערכים
int[] grades = {90, 85, 70, 100, 65};

// מערך של מחרוזות
String[] names = {"דני", "רונה", "משה"};

גישה לאיברים

int[] arr = {10, 25, 3, 42, 7};

int first = arr[0];  // 10
int last = arr[4];   // 7
arr[2] = 99;         // שינוי: arr = {10, 25, 99, 42, 7}

int size = arr.length; // 5 (בלי סוגריים!)

מעבר על מערך בלולאה

// מעבר רגיל עם for
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

// מעבר עם for-each
for (int val : arr) {
    System.out.println(val);
}

פעולות בסיסיות

// חישוב סכום
public static int sum(int[] arr) {
    int total = 0;
    for (int i = 0; i < arr.length; i++)
        total += arr[i];
    return total;
}

// מציאת מקסימום
public static int max(int[] arr) {
    int m = arr[0];
    for (int i = 1; i < arr.length; i++) {
        if (arr[i] > m)
            m = arr[i];
    }
    return m;
}

ערכי ברירת מחדל

טיפוסערך ברירת מחדל
int0
double0.0
booleanfalse
char'\u0000'
String / אובייקטnull

שאלות נפוצות

מה ההבדל בין length ל-length()?

length (בלי סוגריים) הוא שדה של מערך. length() (עם סוגריים) היא פעולה של String. אל תתבלבלו!

מה קורה אם ניגשים ל-arr[5] במערך בגודל 5?

חריג ArrayIndexOutOfBoundsException! האינדקסים החוקיים הם 0 עד 4.

איך מעבירים מערך לפעולה?

פשוט כותבים את שם המערך כפרמטר. המערך מועבר כהפנייה – שינויים בתוך הפעולה ישפיעו על המערך המקורי.

צריכים עזרה במערכים?

מורים פרטיים ילמדו אתכם מערכים מהבסיס ועד שאלות בגרות.

מצאו מורה פרטי