Menu
CoddyTech

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].

challenge icon

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));
    }
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Java online