מתודות של מערכים
חלק מהיחידה יסודות במסלול ה-Java של Coddy. שיעור 61 מתוך 73.
מערכים כוללים שיטות רבות (פונקציונליות). כדי לגשת לשיטה, כתבו:
Arrays.methodName(arrayName, otherParameters)הנה רשימה של המתודות הבסיסיות:
fill(array, value)- ממלא את המערך בערך מסוים
toString()- ממיר את המערך למחרוזת
sort(array)- ממיין את המערך בסדר עולה
equals(array1, array2)- משווה בין שני מערכים כדי לקבוע אם הם שווים
הנה דוגמה לאופן השימוש בשיטה fill עם toString:
int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers));הפלט יהיה [10, 10, 10, 10, 10].
דוגמה לשיטת sort:
int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));הפעולה תציג את [1, 2, 5, 5, 6, 9].
אתגר
קלצרו מתודה בשם merge שמקבלת שני מערכים כארגומנטים. המתודה ממזגת את שני המערכים למערך ממויין אחד ומחזירה אותו.
חשוב: המערך הממוזג הסופי חייב להיות ממויין בסדר עולה.
לדוגמה, הארגומנטים הבאים: merge(new String[] {"1", "4", "2"}, new String[] {"2", "5", "9"}) יחזירו ["1", "2", "2", "4", "5", "9"] (שימו לב שהתוצאה ממויינת)
השתמשו ב-System.arraycopy() כדי להעתיק איברים ממערך אחד לאחר. התחביר הוא:
System.arraycopy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)System.arraycopy() מעתיקה רק לתוך מערך שכבר קיים; היא לעולם לא מגדילה את מערך היעד. תחילה צרו את המערך הממוזג עם arr1.length + arr2.length תאים, העתיקו את arr1 למיקום 0, ואז העתיקו את arr2 החל מהמיקום arr1.length.
לדוגמה:
// Source array
String[] sourceArray = {"1", "2", "3", "4", "5"};
// Destination array
String[] destinationArray = new String[5];
// Copy elements from sourceArray to destinationArray
System.arraycopy(sourceArray, 0, destinationArray, 0, 5);מערך היעד לאחר ההעתקה: 1 2 3 4 5
נסו בעצמכם
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static String[] merge(String[] arr1, String[] arr2) {
// כתבו כאן את הקוד
return null;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String textArr1 = scanner.nextLine();
String textArr2 = scanner.nextLine();
String[] arr1 = textArr1.split(",");
String[] arr2 = textArr2.split(",");
String[] mergedArray = merge(arr1, arr2);
System.out.println(Arrays.toString(mergedArray));
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר מכןקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזות5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2סיכום - לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 411יסודות המערכים
הכרזת מערכיםגישה לאיבריםשינוי מערכיםמתודות של מערכיםחזרה – מערך המכפלותחזרה – מערך הפוךתרגלו בעצמכם: קומפיילר Java אונליין