Đảo ngược Integer Array trong Android ListView
Ví dụ này trình bày cách đảo ngược thứ tự các phần tử trong mảng số nguyên và hiển thị lên ListView. Kết hợp Collections.sort() và Collections.reverse().
Bước 1: Tạo dự án mới
Android Studio → File → New Project.
Bước 2: Giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="30dp"
tools:context=".MainActivity">
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Bước 3: Code logic (src/MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class MainActivity extends AppCompatActivity {
ListView list;
int[] array = {2, 5, 6, 8, 0, 7, 9, 4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = findViewById(R.id.list);
// Chuyển int[] sang ArrayList<String>
ArrayList<String> arrayList = new ArrayList<>();
for (int s : array) {
arrayList.add(String.valueOf(s));
}
// Sắp xếp tăng dần
Collections.sort(arrayList);
// Đảo ngược thành giảm dần
Collections.reverse(arrayList);
// Hiển thị
ArrayAdapter adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, arrayList);
list.setAdapter(adapter);
}
}
Các cách khác để đảo ngược
// Cách 1: Dùng ListIterator (cho List)
ListIterator<String> iterator = arrayList.listIterator(arrayList.size());
while (iterator.hasPrevious()) {
Log.d("Reverse", iterator.previous());
}
// Cách 2: Java 8 Stream (API 24+)
arrayList.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
// Cách 3: Đảo ngược mảng gốc (int[])
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = temp;
}
Chạy ứng dụng
Kết quả ListView hiển thị: 9, 8, 7, 6, 5, 4, 2, 0 (giảm dần).
