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

অ্যান্ড্রয়েডে অ্যারে থেকে ArrayList-এ রূপান্তর করার পদ্ধতি

অ্যারে এবং ArrayList-এ পার্থক্য

জাভাতে অ্যারে (Array) একটি নির্দিষ্ট আকারের ডেটা স্ট্রাকচার, যার আকার পরিবর্তন করা যায় না। অন্যদিকে ArrayList একটি ডাইনামিক অ্যারে যা প্রয়োজন অনুযায়ী বড় বা ছোট হতে পারে। অ্যান্ড্রয়েড ডেভেলপমেন্টে ArrayList বেশি ব্যবহার করা হয়।

উদাহরণ: অ্যারে থেকে ArrayList-এ রূপান্তর

এই উদাহরণে একটি স্ট্রিং অ্যারেকে Arrays.asList() ব্যবহার করে ArrayList-এ রূপান্তর করা হয়েছে।

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

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:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:hint="নাম লিখুন"
        android:layout_height="wrap_content" />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/save"
            android:text="সংরক্ষণ"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/refresh"
            android:text="রিফ্রেশ"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

ধাপ ৩: MainActivity.java

package com.example.arraytoarraylist;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;

public class MainActivity extends AppCompatActivity {
    EditText name;
    ArrayAdapter<String> arrayAdapter;
    ArrayList<String> arrayList;
    Set<String> nameSet = new HashSet<>();
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        arrayList = new ArrayList<>();
        arrayList.ensureCapacity(20);
        
        name = findViewById(R.id.name);
        listView = findViewById(R.id.listView);

        // রিফ্রেশ বাটন
        findViewById(R.id.refresh).setOnClickListener(v -> {
            if (arrayAdapter != null) {
                arrayAdapter.notifyDataSetChanged();
                listView.invalidateViews();
                listView.refreshDrawableState();
            }
        });

        // সেভ বাটন
        findViewById(R.id.save).setOnClickListener(v -> {
            String inputName = name.getText().toString().trim();
            if (!inputName.isEmpty()) {
                nameSet.add(inputName);
                arrayList.clear();
                
                if (arrayList.isEmpty()) {
                    // স্ট্রিং অ্যারে তৈরি
                    String[] technologies = {"ANDROID", "JSP", "JAVA", "STRUTS", "HADOOP", "JSF"};
                    
                    // অ্যারে থেকে ArrayList-এ রূপান্তর (মূল টেকনিক)
                    ArrayList<String> techList = new ArrayList<>(Arrays.asList(technologies));
                    
                    arrayList.addAll(techList);
                    arrayList.addAll(nameSet);
                    
                    // সাজানো
                    Collections.sort(arrayList, new Comparator<String>() {
                        @Override
                        public int compare(String o1, String o2) {
                            return o1.compareTo(o2);
                        }
                    });
                    
                    arrayList.trimToSize();
                    arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
                    listView.setAdapter(arrayAdapter);
                } else {
                    listView.setVisibility(View.GONE);
                }
                Toast.makeText(this, "সংরক্ষণ সফল", Toast.LENGTH_LONG).show();
            } else {
                name.setError("নাম লিখুন");
            }
        });
    }
}

মূল রূপান্তর পদ্ধতি

// পদ্ধতি ১: Arrays.asList() ব্যবহার করে (সর্বाधিক رایда)
String[] array = {"A", "B", "C"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));

// পদ্ধতি ২: Collections.addAll() ব্যবহার করে
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, array);

// পদ্ধতি ৩: Java 8 Stream API (API 24+)
ArrayList<String> list = Arrays.stream(array)
    .collect(Collectors.toCollection(ArrayList::new));

চলাচল ও ফলাফল

অ্যাপ রান করুন। নাম লিখে Save দিন। ListView-এ পূর্বনির্ধারিত অ্যারে আইটেমগুলো (ANDROID, JAVA, JSP ইত্যাদি) এবং আপনার ইনপুট নামগুলো সাজানো অবস্থায় দেখাবে।

অ্যান্ড্রয়েডে অ্যারে থেকে ArrayList-এ রূপান্তর করার পদ্ধতি

ফলাফলে অ্যারে আইটেমগুলো ArrayList-এ রূপান্তরিত হয়ে ListView-এ দেখানো হয়েছে।

  1. অ্যান্ড্রয়েডে Bitmap-কে বাইট অ্যারে-তে রূপান্তর করার পদ্ধতি

  2. অ্যান্ড্রয়েডে Bitmap কে Drawable-এ রূপান্তর করা

  3. অ্যান্ড্রয়েডে Drawable কে Bitmap-এ রূপান্তর করা

  4. অ্যান্ড্রয়েডে JSON অ্যারে ইটারেট করার পদ্ধতি