অ্যারে এবং 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-এ রূপান্তরিত হয়ে ListView-এ দেখানো হয়েছে।