3.8.6. מערכים

מערכים ב-Java הם אובייקטים, כלומר הם מוקצים על הערימה ולא על המחסנית.

גודל מערך הינו קבוע ואיננו יכול להשתנות מרגע שהוגדר. גודל המערך ניתן לנו על ידי השדה הקבוע length הנקבע בעת יצירת המערך.

דוגמא לאתחול מערך של אובייקטים:

Animal[] arr; // nothing yet …

arr = new Animal[4]; // only array of pointers

for(int i=0 ; i < arr.length ; i++)

      arr[i] = new Animal();

// now we have a complete array

יש ב-Java הבדל בין אתחול מערך של משתנים בסיסיים לבין מערך המכיל אובייקטים של מחלקות.

לולאת ה-for שהצגנו תידרש רק במקרה השני.

איברי המערך של טיפוס נתונים פשוט מאותחלים תמיד ל-0 במקרה של char או מספר, ו-false עבור משתנה מסוג boolean. איברי מערך מסוג אובייקטים מאותחלים ל-null עם יצירת המערך.



העתקת מערכים ב-Java איננה יכולה להתבצע בעזרת האופרטור =, כפי שהקוד הבא מנסה לעשות:

int vec1[] = {1,2,3};

int vec2[] = {8,7,6,5};

vec1 = vec2; // Won't copy the array!

וזאת מכיוון ששורות אלו ייגרמו ששני המשתנים יצביעו אל אותו מערך, ולא להעתקת תוכנו של המערך.

העתקת תוכן של מערך נעשית על ידי פונקציה שבאה כחלק מ-Java, והיא arraycopy.

השיטה arraycopy מוגדרת כשיטה סטטית במחלקה System:

public static void arraycopy(Object src,

                             int src_position,

                             Object dst,

                             int dst_position,

                             int length);

דוגמא לשימוש בפונקציה:

int []vec1 = {1,2,3,4,5};

int []vec2 = new int[vec1.length];

System.arraycopy(vec1, 0, vec2, 0, vec1.length);

תגיות המסמך:

מאת: נועה

היי אנחנו חרמניות ועושות שיחות לוהטות בוואטספ ומוכרות סרטונים

היי אנחנו חרמניות ועושות שיחות לוהטות בוואטספ ומוכרות סרטונים שלנו! שלח לנו הודעה בייבי:

054-8818353 אמילי

055-9310377 יעל
מאת: anonymos

xss hack

אני רוצה שתעזור לי ב xss אשמח לתשובה
מאת: BLT

תודה רבה!

וואי הצלת אותי! קיבלתי שאלה שלא הצלחתי להבין מה רוצים ממני בכלל ועזרת מאוד, תודה :)
מאת: דולב

מה זה פונקציה?
מאת: משה

עזרה

חיה רצית עזרה ואשמח לעזור
mmh15@windowslive.com
מאת: חיה

תיכנות

יש לי שאלה : כשאני עושה תרגיל מסויים אני וידעת את האלגוריתם אבל לא מצליחה לממש אותה
אתה במקרה מעביר שיעורים פרטיים??אני ממש אשמח
תודה מראש.
מאת: יחזקאל

תחביר

למרות שג'אווה מאפשרת סגנון הכרזה על מערך דומה לזה שבC++, הסגנון המומלץ באופן רשמי שונה - הסוגריים המרובעים באים מיד לאחר הטיפוס ובסמוך אליו, לא בסמוך לשם המערך.
שיתוף:
| עוד