מהו מערך?
מערך הוא אוסף של ערכים מאותו טיפוס, שמאוחסנים ברצף בזיכרון. לכל איבר יש אינדקס (מספר מיקום) שמתחיל מ-0.
מערך בגודל 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; }
ערכי ברירת מחדל
| טיפוס | ערך ברירת מחדל |
|---|---|
| int | 0 |
| double | 0.0 |
| boolean | false |
| char | '\u0000' |
| String / אובייקט | null |
שאלות נפוצות
מה ההבדל בין length ל-length()?
length (בלי סוגריים) הוא שדה של מערך. length() (עם סוגריים) היא פעולה של String. אל תתבלבלו!
מה קורה אם ניגשים ל-arr[5] במערך בגודל 5?
חריג ArrayIndexOutOfBoundsException! האינדקסים החוקיים הם 0 עד 4.
איך מעבירים מערך לפעולה?
פשוט כותבים את שם המערך כפרמטר. המערך מועבר כהפנייה – שינויים בתוך הפעולה ישפיעו על המערך המקורי.