Phương thức của mảng
Thuộc phần Nền tảng cơ bản trong hành trình Java của Coddy. Bài học 61 trên 73.
Lớp Arrays (trong java.util) cung cấp nhiều phương thức hỗ trợ làm việc với mảng. Để gọi một phương thức, hãy viết:
Arrays.methodName(arrayName, otherParameters)Đây là danh sách các phương thức cơ bản:
fill(array, value)- điền một giá trị cụ thể vào mảng
toString()- chuyển mảng (array) thành chuỗi (string)
sort(array): sắp xếp mảng (array) theo thứ tự tăng dần
equals(array1, array2)- so sánh hai mảng để xác định xem chúng có bằng nhau hay không
Đây là ví dụ về cách dùng phương thức fill với toString:
int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers));Kết quả sẽ là [10, 10, 10, 10, 10].
Ví dụ về phương thức sort:
int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));Kết quả sẽ là [1, 2, 5, 5, 6, 9].
Thử thách
DễTạo một phương thức có tên merge nhận hai mảng làm đối số. Phương thức gộp hai mảng thành một mảng đã sắp xếp rồi trả về mảng đó.
Quan trọng: Mảng sau khi gộp phải được sắp xếp theo thứ tự tăng dần.
Ví dụ, các đối số sau: merge(new String[] {"1", "4", "2"}, new String[] {"2", "5", "9"}) sẽ trả về ["1", "2", "2", "4", "5", "9"] (lưu ý kết quả đã được sắp xếp)
Dùng System.arraycopy() để sao chép các phần tử từ mảng này sang mảng khác. Cú pháp là:
System.arraycopy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)System.arraycopy() chỉ sao chép vào một mảng đã tồn tại, nó không bao giờ tăng kích thước mảng đích. Trước tiên, hãy tạo mảng đã gộp có arr1.length + arr2.length chỗ, sao chép arr1 vào vị trí 0, sau đó sao chép arr2 bắt đầu từ vị trí arr1.length.
Ví dụ:
// 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);Mảng đích sau khi sao chép: 1 2 3 4 5
Tự làm thử
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static String[] merge(String[] arr1, String[] arr2) {
// Viết code ở đây
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));
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
4Toán tử phần 1
Toán tử số họcToán tử moduloTăng/giảmTăng/giảm sauPhép rút gọn số họcToán tử so sánhSo sánh chuỗi7Nhập xuất cơ bản
Các phương thức System.outĐịnh dạng đầu raLớp ScannerÔn tập: đến 120Ôn tập: đúng hay sai5Toán tử, phần 2
Toán tử logic, phần 1Toán tử logic, phần 2Ôn tập: logic cơ bảnToán tử logic, phần 3Toán tử logic, phần 411Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: mảng tíchÔn tập: mảng đảo ngượcTự luyện tập: Trình biên dịch Java online