Giới thiệu
Ví dụ này minh họa cách loại bỏ các phần tử trùng lặp từ một LinkedList đã được sắp xếp trong Android, sử dụng LinkedHashSet để giữ nguyên thứ tự.
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền đầy đủ thông tin cần thiết.
Bước 2: Thiết kế 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:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="30sp"
android:gravity="center"
android:padding="16dp" />
</LinearLayout>
Bước 3: MainActivity.java
package com.example.myapplication;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.LinkedHashSet;
import java.util.LinkedList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Tạo LinkedList đã sắp xếp với các phần tử trùng lặp
LinkedList list = new LinkedList<>();
list.add(11);
list.add(11);
list.add(11);
list.add(14);
list.add(14);
list.add(20);
// LinkedHashSet: Loại bỏ trùng lặp + Giữ thứ tự thêm vào
LinkedHashSet uniqueSet = new LinkedHashSet<>(list);
TextView textView = findViewById(R.id.text);
textView.setText("Danh sách gốc: " + list + "\n\nSau khi xóa trùng: " + uniqueSet);
}
}
Chạy ứng dụng
Kết nối thiết bị Android thật với máy tính. Trong Android Studio, nhấn Run và chọn thiết bị để chạy.
Kết quả
Hiển thị:
Danh sách gốc: [11, 11, 11, 14, 14, 20] Sau khi xóa trùng: [11, 14, 20]
Giải thích
- LinkedList: Danh sách liên kết cho phép trùng lặp, duy trì thứ tự thêm
- LinkedHashSet: Kết hợp HashSet (không trùng lặp) + LinkedList (giữ thứ tự)
- Constructor LinkedHashSet(Collection): Tự động loại bỏ trùng lặp khi chuyển đổi
Lưu ý: Yêu cầu API 24+ (Android 7.0) cho một số tính năng Stream. Code này chạy tốt trên mọi phiên bản. Nếu danh sách CHƯA sắp xếp, LinkedHashSet vẫn giữ thứ tự xuất hiện đầu tiên của mỗi phần tử.