כיצד לעבוד עם מערכים: הכרזה ואתחול

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

int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;
int lotteryNumber6 = 20;

דרך אלגנטית יותר להתמודד עם ערכים שניתן לקבץ יחד היא להשתמש במערך. מערך הוא מכל המכיל מספר קבוע של ערכים מסוג נתונים. בדוגמה שלעיל ניתן היה לקבץ את מספרי ההגרלות במערך אינט:

int [] lotteryNumbers = {16,32,12,23,33,20}; 

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

הכרזה ומערך אתחול מערך

הצהרת ההצהרה עבור מערך דומה לזו שהיתה רגילה להכריז על כל משתנה אחר. הוא מכיל את סוג הנתונים ואחריו שם המערך - ההבדל היחיד הוא הכללת סוגריים מרובעים ליד סוג הנתונים:

int [] intArray;
float [] floatArray; 
char [] charArray;
instagram viewer

ה הצהרות הצהרה למעלה אמור למהדר את זה

מבנה פנים
משתנה הוא מערך של
אינץ
,
floatArray
הוא מערך של
צף
ו
charArray
הוא מערך של תווים. כמו כל משתנה, לא ניתן להשתמש בהם עד לאתחול על ידי הקצאת ערך. עבור מערך על הקצאת הערך למערך להגדיר את גודל המערך:
intArray = int חדש [10]; 

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

float [] floatArray = חדש לצוף [10]; 

מערכים אינם מוגבלים לסוגי נתונים פרימיטיביים. ניתן ליצור מערכי אובייקטים:

מחרוזת [] שמות = מחרוזת חדשה [5]; 

באמצעות מערך

לאחר האתחול של מערך, האלמנטים יכולים להקצות להם ערכים באמצעות אינדקס המערך. האינדקס מגדיר את המיקום של כל רכיב במערך. האלמנט הראשון נמצא ב 0, האלמנט השני ב 1 וכן הלאה. חשוב לציין שהאינדקס של האלמנט הראשון הוא 0. קל לחשוב שמכיוון שמערך כולל עשרה אלמנטים שהאינדקס הוא בין 1 ל -10 במקום מ -0 ל -9. לדוגמה, אם נחזור לדוגמא למספרי ההגרלות, נוכל ליצור מערך המכיל 6 אלמנטים ולהקצות את מספרי ההגרלה לאלמנטים:

int [] lotteryNumbers = חדש int [6];
lotteryNumbers [0] = 16;
lotteryNumbers [1] = 32;
lotteryNumbers [2] = 12;
lotteryNumbers [3] = 23;
lotteryNumbers [4] = 33;
lotteryNumbers [5] = 20;

יש קיצור דרך למילוי אלמנטים במערך על ידי הצבת הערכים עבור האלמנטים בהצהרת ההצהרה:

int [] lotteryNumbers = {16,32,12,23,33,20};
מחרוזת [] names = {"John", "James", "Julian", "Jack", "Jonathon"};

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

כדי להשיג את הערך של אלמנט משתמשים באינדקס שלו:

System.out.println ("הערך של האלמנט הראשון הוא" + lotteryNumbers [0]); 

כדי לגלות כמה אלמנטים במערך משתמשים בשדה האורך:

System.out.println ("במערך lotteryNumbers יש" + lotteryNumbers.length + "אלמנטים"); 

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

מערכים רב מימדיים

המערכים עליהם התבוננו עד כה ידועים כמערכים חד-ממדיים (או חד-ממדיים). המשמעות היא שיש להם רק שורה אחת של אלמנטים. עם זאת, למערכים יכולים להיות יותר מממד אחד. רב ממדי הוא למעשה מערך המכיל מערכים:

int [] [] lotteryNumbers = {{16,32,12,23,33,20}, {34,40,3,11,33,24}}; 

האינדקס למערך רב ממדי מורכב משני מספרים:

System.out.println ("הערך של רכיב 1,4 הוא" + lotteryNumbers [1] [4]); 

אמנם אורך המערכים הכלולים במערך רב ממדי לא צריך להיות באותו אורך:

מחרוזת [] [] שמות = מחרוזת חדשה [5] [7]; 

העתקת מערך

כדי להעתיק מערך הדרך הקלה ביותר היא להשתמש במערכת

arraycopy
שיטת מחלקת המערכת. ה
arraycopy
ניתן להשתמש בשיטה להעתקת כל האלמנטים של מערך או חלק קטן מהם. ישנם חמישה פרמטרים שהועברו ל-
 arraycopy
שיטה - המערך המקורי, מיקום האינדקס להתחיל ממנו להעתיק אלמנט, המערך החדש, מיקום האינדקס ממנו צריך להוסיף, מספר האלמנטים להעתקה:
arraycopy סטטי ריק של הציבור (אובייקט src, int srcPos, יעד אובייקט, int destPos, אורך int)

לדוגמה, כדי ליצור מערך חדש המכיל את ארבעת האלמנטים האחרונים של

int 
מערך:
int [] lotteryNumbers = {16,32,12,23,33,20};
int [] newArrayNumbers = חדש int [4];
מערכת. Arraycopy (הגרלות מספרים, 2, חדש ArrayNumbers, 0, 4);

כאשר מערכים הם באורך קבוע

arraycopy
שיטה יכולה להיות דרך שימושית לשנות את גודל המערך.

כדי להרחיב את הידע שלך על מערכים אתה יכול ללמוד על מניפולציה על מערכים באמצעות המערכים מחלקה וביצוע מערכים דינמיים (כלומר מערכים כאשר מספר האלמנטים אינו מספר קבוע) משתמש ב מערך ArrayList.