Đảo ngược mảng trong Java | Laptrinhcanban.com

Đảo ngược mảng trong Java

Hướng dẫn cách đảo ngược mảng trong Java. Có 2 phương pháp cơ bản để đảo ngược mảng trong Java và bạn sẽ học được chúng hoàn hảo sau bài học này.

Chúng ta có 2 phương pháp cơ bản để đảo ngược mảng trong Java như sau:

  • Đảo ngược mảng trong Java và thay đổi mảng ban đầu
  • Đảo ngược mảng trong Java và giữ nguyên mảng ban đầu

Đảo ngược mảng trong Java và thay đổi mảng ban đầu

Đảo ngược mảng trong Java là xử lý hoán đổi vị trí các phần tử trong mảng theo thứ tự ngược lại từ cuối lên đầu.

Nếu một mảng thuộc kiểu số như int hoặc double, chúng ta cũng có thể ứng dụng đảo ngược mảng để đảo ngược dãy số trong Java.

Ví dụ chúng ta có dãy số chứa trong mảng int như sau:

int src[] = {0, 1, 2, 3, 4, 5};

Để đảo ngược dãy số này, chúng ta sử dụng ý tưởng rất đơn giản. Chúng ta hoán đổi số đầu với số cuối trong mảng, sau đó giảm phạm vi bằng cách tiến dần về giữa mảng và lặp lại quá trình hoán đổi số đầu với số cuối trong mảng.

Nói cách khác, với mảng số ở trên thì chúng ta sẽ hoán đổi 0 với 5, 1 với 4, và 2 với 3 , để thu về mảng kết quả là {5, 4, 3, 2, 1, 0}.

Đảo ngược mảng trong Java - đảo ngược dãy số trong Java

Và để có thể hoán đổi 2 phần tử như trên, chúng ta cần phải chuẩn bị một biến tạm thời để chứa một trong 2 phần tử, và hoán đổi chúng với logic temp = X; X = Y; Y = temp;

Logic hoán đổi 2 số trong Java

Ứng dụng các logic trên, chúng ta có thể viết chương trình đảo ngược mảng trong Java, ví dụ như chương trình Đảo ngược dãy số trong Java sau:

import java.util.Arrays;

class Main{
public static void main(String[] args){

int[] src = {0, 1, 2, 3, 4, 5};
System.out.println(Arrays.toString(src));

/*Đảo ngược mảng trong Java bằng vòng lặp*/
for (int i = 0, j = src.length - 1; i < j; i++, j--){
/*Tạo biến temp và tiến hành hoán đổi phần tử*/
int temp = src[i];
src[i] = src[j];
src[j] = temp;
}

System.out.println(Arrays.toString(src));
}
}

Kết quả, chúng ta thu về mảng ban đầu với các phần tử đã được đảo ngược vị trí như sau:

[0, 1, 2, 3, 4, 5]
[5, 4, 3, 2, 1, 0]

Đảo ngược mảng trong Java và giữ nguyên mảng ban đầu

Ở phần trên Kiyoshi đã hướng dẫn bạn cách đảo ngược mảng trong Java và thay đổi mảng ban đầu.

Tuy nhiên thì chúng ta cũng hoàn toàn có thể đảo ngược mảng trong Java và giữ nguyên mảng ban đầu, bằng cách sử dụng phương thức Collections.reverse().

Phương thức Collections.reverse() vốn được sử dụng để đảo ngược các collection như list trong Java chẳng hạn. Tuy nhiên vì chúng ta không thể dùng phương thức Collections.reverse trực tiếp với mảng, nên chúng ta cần phải chuyển kiểu dữ liệu từ mảng sang kiểu list, sau đó đảo ngược các phần tử trong list, rồi mới chuyển lại từ list về mảng và lưu kết quả vào một mảng mới.

Và chúng ta viết chương trình như sau:

import java.util.List;
import java.util.Arrays;
import java.util.Collections;

class Main
{
public static void main (String[] args)
{
// Tạo và in mảng ban đầu
String[] name = {"Ha Noi", "Nam Dinh", "Thanh Hoa", "Ninh Binh"};
System.out.println(Arrays.toString(name));

// Chuyển mảng ban đầu sang dạng list
List list = Arrays.asList(name);

// Đảo ngược list
Collections.reverse(list);

// Chuyển list thành mảng kết quả
String[] name2 = (String[])list.toArray(new String[3]);
System.out.println(Arrays.toString(name2));
}
}

Kết quả:

[Ha Noi, Nam Dinh, Thanh Hoa, Ninh Binh]
[Ninh Binh, Thanh Hoa, Nam Dinh, Ha Noi]

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách đảo ngược 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.