Cắt mảng trong Java (Arrays.copyOfRange) | Laptrinhcanban.com

Cắt mảng trong Java (Arrays.copyOfRange)

Hướng dẫn cách cắt mảng trong Java. Bạn sẽ học được cách cắt một phạm vi từ mảng ban đầu và tạo ra một mảng mới trong Java sau bài học này.

Cắt mảng trong Java | Arrays.copyOfRange

Để cắt một phạm vi từ mảng ban đầu và tạo ra một mảng mới trong Java, chúng ta sẽ sử dụng đến phương thức dựng sẵn trong class Arrays là Arrays.copyOfRange().

Để sử dụng được phương thức này thì chúng ta cần phải import class Arrays trước với lệnh sau:

import java.util.Arrays;

Sau đó chúng ta sử dụng phương thức Arrays.copyOfRange để cắt mảng trong Java với cú pháp sau đây:

Arrays.copyOfRange(int[] scr, int start, int end);

Trong đó:

  • scr là mảng nguồn
  • start là index bắt đầu phạm vi cắt. Index này được bao gồm trong kết quả cắt.
  • end là index kết thúc phạm vi cắt. Index này không bao gồm trong kết quả cắt, và có thể nằm ngoài phạm vi của mảng.

Phương thức Arrays.copyOfRange sẽ trả về một số xử lý ngoại lệ sau:

  • ArrayIndexOutOfBoundsException: giá trị của start nằm ngoài phạm vi mảng
  • IllegalArgumentException: Giá trị của start lớn hơn end
  • NullPointerException: mảng src là null

Phương thức Arrays.copyOfRange trả về một mảng mới được cắt ra từ mảng ban đầu với độ dài đúng bằng hiệu của giá trị end với start. Trong trường hợp mảng cắt ra không đủ độ dài, số 0 sẽ được sử dụng để đệm cho đủ độ dài mảng.

Lưu ý là khi sử dụng Arrays.copyOfRange, chúng ta không cần phải tạo ra bản thể của mảng kết quả sau khi khai báo nó, mà có thể gán trực tiếp kết quả cắt ra vào mảng kết quả.

Ví dụ cắt mảng trong Java

Sau đây chúng ta sẽ cùng thực hành một số ví dụ về cắt mảng trong Java bằng Arrays.copyOfRange.

Ví dụ 1: Cắt mảng con có phạm vi nằm trong mảng ban đầu

import java.util.Arrays;

class Main{
public static void main(String[] args){
int[] src = {12, 24, 18, 35, 21};
int[] dst = Arrays.copyOfRange(src, 1, 4);

System.out.println("src = "+Arrays.toString(src));
System.out.println("dst = "+Arrays.toString(dst));
}
}

Trong ví dụ này, phạm vi chỉ định cắt nằm trong phạm vi mảng ban đầu, và kết quả chúng ta có mảng mới là một phần của mảng ban đầu như sau:

src = [12, 24, 18, 35, 21]
dst = [24, 18, 35]

Ví dụ 1: Cắt mảng con có phạm vi nằm ngoài mảng ban đầu

import java.util.Arrays;

class Main{
public static void main(String[] args){
int[] src = {12, 24, 18, 35, 21};
int[] dst = Arrays.copyOfRange(src, 1, 8);

System.out.println("src = "+Arrays.toString(src));
System.out.println("dst = "+Arrays.toString(dst));
}
}

Trong ví dụ này, phạm vi chỉ định cắt nằm ngoài phạm vi mảng ban đầu, và do vậy số 0 sẽ được dùng để đệm vào kết quả cho đủ độ dài như sau:

src = [12, 24, 18, 35, 21]
dst = [24, 18, 35, 21, 0, 0, 0]

Trong các ví dụ trên, chúng ta đã sử dụng phương thức Arrays.toString để chuyển mảng thành chuỗi trong Java. Bạn có thể tham khảo chi tiết tại bài viết sau:

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách cắt mảng trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.