logo

הוסף אלמנטים ל-Array ב-Java

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

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

  1. על ידי יצירת מערך גודל גדול יותר מאשר arr.
  2. באמצעות ArrayList
  3. על ידי הזזת האלמנט כדי להתאים את גודל arr.

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

יצירת מערך בגודל גדול יותר

כדי להוסיף אלמנטים במערך ה-java, נוכל ליצור מערך נוסף בגודל גדול יותר ולהעתיק את כל האלמנטים מהמערך שלנו למערך אחר ולמקם את הערך החדש באחרון של המערך החדש שנוצר. עם זאת, זו לא דרך יעילה להוסיף אלמנט למערך. בדוגמה למטה, אלמנט 7 מתווסף למערך arr בעזרת מערך חדש שנוצר newArr. שקול את הדוגמה הבאה.

 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = {1,2,3,4,5,6}; int n = arr.length; int newArr[] = new int[n+1]; int value = 7; System.out.println(Arrays.toString(arr)); for(int i = 0; i<n; i++) { newarr[i]="arr[i];" } newarr[n]="value;" system.out.println(arrays.tostring(newarr)); < pre> <h3>Using ArrayList</h3> <p>We can use <a href="/java-arraylist">ArrayList</a> as the intermediate structure and add the elements into the ArrayList using the add () method. ArrayList is a data structure that allows us to dynamically add elements. However, we can convert the ArrayList to the array by using the toArray() method. Hence this process involves the following steps.</p> <ol class="points"> <li>Convert Array into ArrayList using asList() method.</li> <li>Add elements into the array list using the add() method.</li> <li>Convert the ArrayList again to the array using the toArray() method.</li> </ol> <p>Consider the following example.</p> <pre> import java.util.ArrayList; import java.util.Arrays; public class JavaAddElementUsingList { public static void main(String[] args) { // TODO Auto-generated method stub Integer arr[] = {1,2,3,4,5,6}; System.out.println(&apos;Array:&apos;+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println(&apos;Array after adding element: &apos;+Arrays.toString(arr)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] </pre> <h3>Shifting elements to adjust the size of the array</h3> <p>In this method, we will add the elements to the specified index in the array. Likewise, the above two processes will use a new destination array with a larger size than the original array. However, it will be tricky to shift the destination array elements after copying all elements from the original array to destination array.</p> <p>In this method, we will,</p> <ol class="points"> <li>Create a new destination array with a larger size than the original array.</li> <li>Copy all the elements from the original array to the new destination array</li> <li>Shift the elements after the given index to the right until it reaches the end of the array.</li> <li>Insert the new element at the given index.</li> </ol> <p>Consider the following example in which we will add a specific value at the given index 3 in the original array using a destination array.</p> <pre> import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println('array after adding value: '+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;></pre></n;>

תְפוּקָה:

 Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] 

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

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

בשיטה זו, אנו נעשה,

  1. צור מערך יעד חדש בגודל גדול יותר מהמערך המקורי.
  2. העתק את כל האלמנטים מהמערך המקורי למערך היעד החדש
  3. העבר את האלמנטים אחרי האינדקס הנתון ימינה עד שהוא מגיע לסוף המערך.
  4. הכנס את האלמנט החדש באינדקס הנתון.

שקול את הדוגמה הבאה שבה נוסיף ערך ספציפי באינדקס הנתון 3 במערך המקורי באמצעות מערך יעד.

 import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println(\'array after adding value: \'+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;>