কম্পিউটার টিউটোরিয়াল

Android-এ Stack সর্ট (Sort) করার পদ্ধতি

Android-এ Stack সর্ট করা: Collections.sort() ব্যবহার করে

এই টিউটোরিয়ালে আমরা দেখব কিভাবে Java-র Stack ক্লাসের এলিমেন্টগুলো সর্ট করা যায়। যেহেতু Stack সরাসরি সর্ট সাপোর্ট করে না, তাই এটিকে List-এ কনভার্ট করে Collections.sort() ব্যবহার করা হয়।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio → File → New Project → প্রয়োজনীয় ডিটেইলস পূরণ করুন।

ধাপ ২: লেআউট ফাইল (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: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.Collections;
import java.util.Stack;

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);

        Stack<Integer> stack = new Stack<>();
        stack.add(1);
        stack.add(10);
        stack.add(9);
        stack.add(4);
        stack.add(3);
        stack.add(2);

        // Stack-এর underglying list-এ অ্যাক্সেস পেয়ে সর্ট করুন
        // Stack Vector-এ বেসড, তাই এটিকে List হিসেবে ট্রিট করা যায়
        Collections.sort(stack);

        TextView textView = findViewById(R.id.text);
        textView.setText("সর্টেড Stack: " + stack.toString());
    }
}

মূল কোডের সমস্যা: মূল উদাহরণে HashSet ব্যবহার করা হয়েছিল যা ডুপ্লিকেট সরিয়ে ফেলে এবং অর্ডার রক্ষা করে না। এখানে Collections.sort(stack) ব্যবহার করে আসল সর্টিং করা হয়েছে।

ফলাফল

ইনপুট Stack (টপ থেকে বটম): [1, 10, 9, 4, 3, 2]

সর্টেড আউটপুট: [1, 2, 3, 4, 9, 10] (অসেন্ডিং অর্ডার)

Android-এ Stack সর্ট (Sort) করার পদ্ধতি

গভীর ব্যাখ্যা

  • Stack<E> হলো Vector<E>-এक्सটেন্ডেড ক্লাস, যা List<E> ইমপ্লিমেন্ট করে।
  • Collections.sort(List) ন্যাচারেল অর্ডারিং (Comparable) অনুযায়ী সর্ট করে।
  • সর্টিং ইন-প্লেস (In-place) হয়, মানে মূল Stack-ই সর্ট হয়ে যায়।

ডিসেন্ডিং অর্ডারলে সর্ট করতে চাইলে

Collections.sort(stack, Collections.reverseOrder());

সারসংক্ষেপ

Stack সর্ট করার সবচে্য সহজ উপায় হলো Collections.sort(stack) কল করা, কারণ Stack ইনহেরিট করে Vector যা List ইমপ্লিমেন্ট করে। এটি O(n log n) টাইম কমপ্লেক্সিটিতে কাজ করে।

  1. অ্যান্ড্রয়েডে অ্যারে এলিমেন্ট সর্ট করার পদ্ধতি

  2. অ্যান্ড্রয়েড লিস্টভিউতে স্ট্রিং অ্যারে সর্ট করা

  3. এন্ড্রয়েডে Volley এলিমেন্টগুলো সর্ট করার উপায়

  4. এন্ড্রয়েডে Volley এলিমেন্টগুলো রিভার্স সর্ট করার উপায়