Java তে LinkedList একটি ডাটা স্ট্রাকচার যা Collection Framework এর অংশ। এটি একটি ডাবল লিংকড লিস্ট (doubly linked list) যা উপাদানগুলোকে লিংকেড নোড হিসেবে সংরক্ষণ করে। LinkedList ইটেমগুলোকে দ্রুত ইনসার্ট বা রিমুভ করতে সহায়তা করে, বিশেষত যখন আইটেমগুলো তালিকার শুরু বা শেষে যুক্ত বা অপসারণ করা হয়।
LinkedList এর প্রধান সুবিধা:
- Dynamic Size: LinkedList এর আকার পরিবর্তনশীল, তাই এটি ফিক্সড আকারের অ্যারে থেকে বেশি সুবিধাজনক।
- Efficient Insertions/Deletions: যদি ডেটা তালিকার শুরু বা শেষে থাকতে থাকে, তবে ইনসার্ট বা ডিলিশন কার্যক্রম দ্রুত হয়।
LinkedList ক্লাসের কিছু প্রধান মেথড:
- add(E e): একটি উপাদান তালিকায় যুক্ত করে।
- remove(Object o): তালিকা থেকে একটি উপাদান সরিয়ে দেয়।
- get(int index): নির্দিষ্ট ইনডেক্সের উপাদান রিটার্ন করে।
- size(): তালিকায় মোট উপাদান সংখ্যা রিটার্ন করে।
- isEmpty(): তালিকা খালি কিনা তা চেক করে।
উদাহরণ: LinkedList ব্যবহার করে Data Manipulation
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
// LinkedList তৈরি
LinkedList<String> fruits = new LinkedList<>();
// List এ উপাদান যোগ করা
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Mango");
// List এর আউটপুট
System.out.println("Initial List: " + fruits);
// List এ উপাদান নির্দিষ্ট স্থানে যোগ করা (প্রথম স্থানে)
fruits.addFirst("Pineapple");
System.out.println("After adding to the first: " + fruits);
// List এর শেষের দিকে একটি উপাদান যোগ করা
fruits.addLast("Grapes");
System.out.println("After adding to the last: " + fruits);
// List থেকে একটি উপাদান সরানো
fruits.remove("Banana");
System.out.println("After removing Banana: " + fruits);
// List থেকে প্রথম উপাদান সরানো
fruits.removeFirst();
System.out.println("After removing first element: " + fruits);
// List থেকে শেষ উপাদান সরানো
fruits.removeLast();
System.out.println("After removing last element: " + fruits);
// নির্দিষ্ট ইনডেক্সের উপাদান নেওয়া
String fruitAtIndex2 = fruits.get(2); // Index 2 তে যে উপাদান রয়েছে
System.out.println("Element at index 2: " + fruitAtIndex2);
// List এর আকার
int size = fruits.size();
System.out.println("Size of the List: " + size);
// List খালি কিনা তা চেক করা
boolean isEmpty = fruits.isEmpty();
System.out.println("Is the List empty? " + isEmpty);
}
}
কোডের ব্যাখ্যা:
- LinkedList fruits = new LinkedList<>();:
- এখানে একটি
LinkedListতৈরি করা হয়েছে যেটি String ডেটা ধারণ করবে।
- এখানে একটি
- add():
fruits.add("Apple");মেথডটি তালিকার শেষে "Apple" উপাদান যোগ করে।
- addFirst() এবং addLast():
addFirst("Pineapple");প্রথম স্থানে "Pineapple" যোগ করে।addLast("Grapes");তালিকার শেষে "Grapes" যোগ করে।
- remove():
fruits.remove("Banana");"Banana" উপাদানটি তালিকা থেকে সরিয়ে দেয়।fruits.removeFirst();তালিকার প্রথম উপাদান সরিয়ে দেয়।fruits.removeLast();তালিকার শেষ উপাদান সরিয়ে দেয়।
- get():
fruits.get(2);তালিকার 2 নম্বর ইনডেক্সে থাকা উপাদানটি রিটার্ন করে। এখানে ইনডেক্সিং 0 থেকে শুরু হয়।
- size():
fruits.size();তালিকায় মোট উপাদান সংখ্যা রিটার্ন করে।
- isEmpty():
fruits.isEmpty();চেক করে তালিকা খালি কিনা।
আউটপুট:
Initial List: [Apple, Banana, Orange, Mango]
After adding to the first: [Pineapple, Apple, Banana, Orange, Mango]
After adding to the last: [Pineapple, Apple, Banana, Orange, Mango, Grapes]
After removing Banana: [Pineapple, Apple, Orange, Mango, Grapes]
After removing first element: [Apple, Orange, Mango, Grapes]
After removing last element: [Apple, Orange, Mango]
Element at index 2: Mango
Size of the List: 3
Is the List empty? false
ব্যাখ্যা:
- প্রথমে
add()ব্যবহার করে কিছু ফ্রুট তালিকায় যোগ করা হয়েছে। - তারপর
addFirst()এবংaddLast()দিয়ে তালিকার প্রথম ও শেষের স্থানে উপাদান যোগ করা হয়েছে। remove()দিয়ে কিছু উপাদান সরানো হয়েছে এবংget()দিয়ে নির্দিষ্ট ইনডেক্সের উপাদান নেওয়া হয়েছে।- শেষে
size()এবংisEmpty()মেথড দিয়ে তালিকার আকার এবং খালি কিনা তা চেক করা হয়েছে। - Dynamic Size: একটি LinkedList স্বয়ংক্রিয়ভাবে সাইজ পরিবর্তন করতে পারে।
- Efficient Insertions/Deletions: যেকোনো স্থানে উপাদান ইনসার্ট বা ডিলিট করা খুব দ্রুত হয়।
- Accessing Elements: যদিও লিঙ্কড লিস্টের উপাদানগুলোকে অ্যাক্সেস করা ধীরে ঘটে, তবে ইনসার্ট এবং ডিলিশন দ্রুত হয়।
এই উদাহরণটি LinkedList ব্যবহার করে ডেটার ম্যানিপুলেশন (যেমন ইনসার্ট, রিমুভ, আ্যাক্সেস) দেখাচ্ছে।
Content added By
Read more