Thêm phần tử vào mảng trong Java
Làm thế nào để thêm các phần tử vào một mảng trong Java? Chúng ta biết rằng kích thước mảng Java là cố định, vì vậy chúng tôi không thể thêm các phần tử vào mảng. Chúng ta phải cung cấp kích thước của mảng khi chúng tôi khởi tạo mảng trong Java.
>> Xem ngay Tài liệu Java Core giúp bạn “Nâng Cấp” kỹ năng lập trình
Thật vậy. Giả sử chúng ta khai báo một mảng có 5 phần tử và gán giá trị cho các phần tử như sau:COPY
String[] arr = new String[5]; arr[0] = “1”; arr[1] = “2”; arr[2] = “3”; arr[3] = “4”; arr[4] = “5”; |
Nếu chúng ta cố thêm một phần tử thứ 6 vào mảng đó, thì do sẽ vượt quá kích thước của mảng, dẫn đến lỗi sẽ xảy ra như sau:COPY
arr[6] = 6; >>> java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 5 |
Bởi thế, để thêm phần tử vào một mảng, thì thay vì thêm trực tiếp phần tử và thay đổi kích thước mảng đó (là việc không thể) thì chúng ta cần phải chuẩn bị một mảng có kích thước lớn hơn để có thể chứa cả mảng ban đầu lẫn phần tử cần thêm vào.
Làm thế nào để thêm các phần tử vào một mảng trong java? Chúng tôi biết rằng kích thước mảng java là cố Không có phương thức phím tắt nào để thêm các phần tử vào một mảng trong java. Nhưng là một lập trình viên, chúng ta có thể viết một. Ở đây tôi đang cung cấp một phương thức tiện ích mà chúng ta có thể sử dụng để thêm các phần tử vào một mảng. Chúng tôi cũng có thể sử dụng nó cho các mảng sao chép java.
Trong phương thức utility, tôi sẽ tạo một mảng tạm thời, kích thước của nó sẽ là phép cộng độ dài của mảng và số phần tử cần thêm vào mảng. Sau đó, tôi sẽ sao chép mảng đầu vào vào mảng tạm thời và thêm các phần tử rồi trả về.
import java.util.Arrays;
public class AddToArray {
public static void main(String[] args) {
Object[] objArr1 = {"1","2","3"};
Object[] objArr2 = {"4","5","6"};
//adding an element to array
Object[] objArr = add(objArr1, "4");
System.out.println(Arrays.toString(objArr));
//adding two arrays
objArr = add(objArr1, objArr2);
System.out.println(Arrays.toString(objArr));
}
/**
* This method will add elements to an array and return the resulting array
* @param arr
* @param elements
* @return
*/
public static Object[] add(Object[] arr, Object... elements){
Object[] tempArr = new Object[arr.length+elements.length];
System.arraycopy(arr, 0, tempArr, 0, arr.length);
for(int i=0; i < elements.length; i++)
tempArr[arr.length+i] = elements[i];
return tempArr;
}
}
Code language: JavaScript (javascript)
Tôi đang sử dụng các đối số biến trong add() để chúng ta có thể chuyển bất kỳ số lượng đối tượng nào sẽ được thêm vào mảng. Lưu ý rằng kiểu mảng phải là Object, nếu không nó sẽ ném ClassCastException.
Output:
[1, 2, 3, 4]
[1, 2, 3, 4, 5, 6]
Code language: JSON / JSON with Comments (json)
Đây chỉ là một cách thay thế để thêm Object vào một mảng trong java nhưng chúng ta nên sử dụng ArrayList trong trường hợp này, nơi số lượng phần tử có thể thay đổi.
Happy learning!!!