Android-এ সর্টেড LinkedList-এ서 ডুপ্লিকেট এলিমেন্ট সরিয়ে ফেলা
এই টিউটোরিয়ালে আমরা দেখব কিভাবে Java Collections Framework-এ LinkedHashSet ব্যবহার করে একটি সর্টেড (Sorted) LinkedList- থেকে ডুপ্লিকেট মানগুলো সরিয়ে অনIQUE মানের লিস্ট তৈরি করা যায়, причম অর্ডার রক্ষা করে।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio → File → New Project → প্রয়োজনীয় ডিটেইলস পূরণ করুন।
ধাপ ২: লেআউট ফাইল (activity_main.xml)
সिर्फ একটি TextView ব্যবহার করে ফলাফল দেখানো হবে:
<?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:orientation="vertical"
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" />
</LinearLayout>
ধাপ ৩: MainActivity.java
package com.example.myapplication;
import android.os.Build;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import java.util.LinkedHashSet;
import java.util.LinkedList;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.P)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// সর্টেড লিংকড লিস্ট (ডুপ্লিকেটসহ)
LinkedList<Integer> list = new LinkedList<>();
list.add(11);
list.add(11);
list.add(11);
list.add(14);
list.add(14);
list.add(20);
// LinkedHashSet ব্যবহার করে ডুপ্লিকেট সরিয়ে অর্ডার রক্ষা
LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(list);
TextView textView = findViewById(R.id.text);
textView.setText("ডুপ্লিকেট বাদ: " + hashSet.toString());
}
}
কোড ব্যাখ্যা
LinkedList— ইনসারশন অর্ডার রক্ষা করে, ডুপ্লিকেট অ্যালাউ করে।LinkedHashSet— সেট হওয়ার কারণে ডুপ্লিকেট অ্যালাউ করে না, কিন্তু ইনসারশন অর্ডার রক্ষা করে।- কনস্ট্রাক্টর
new LinkedHashSet<>(list)দিয়ে সরাসরি লিস্ট থেকে সেট তৈরি করা যায়।
ফলাফল
আউটপুট: [11, 14, 20] (ডুপ্লিকেট ১১ এবং ১৪ সরিয়ে ফেলা হয়েছে, অর্ডার রক্ষা করা হয়েছে)।

বিকল্প পদ্ধতি (Java 8+ Stream API)
list.stream().distinct().collect(Collectors.toCollection(LinkedHashSet::new));
এটিও একই ফলাফল দেবে কিন্তু আরও ফাংশনাল স্টাইলে।
সারসংক্ষেপ
সর্টেড লিংকড লিস্ট থেকে ডুপ্লিকেট সরিয়ে অর্ডার রক্ষা করার সবচেয়ে সহজ ও দক্ষ উপায় হলো LinkedHashSet কনস্ট্রাক্টর ব্যবহার করা। এটি O(n) টাইম কমপ্লেক্সিটিতে কাজ করে।