Java Collections Framework এ List, Set, এবং Map তিনটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার রয়েছে, যা ডেটা সংগঠিত এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। এই তিনটি ইন্টারফেসের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, যেগুলি তাদের আচরণ এবং ব্যবহারের ধরন অনুযায়ী আলাদা।
নিচে List, Set, এবং Map এর মধ্যে পার্থক্যগুলি বিস্তারিতভাবে তুলে ধরা হলো:
1. List (Interface)
- Definition: List একটি ordered কনটেইনার যেখানে ডেটা সিকোয়েন্স অনুযায়ী স্টোর হয়, এবং এটি ডুপ্লিকেট উপাদান সমর্থন করে।
- Ordering: এলিমেন্টগুলো ইনডেক্স অনুসারে সাজানো থাকে। অর্থাৎ, এলিমেন্টগুলি সংরক্ষণ করার সময় তাদের ইনডেক্সের (অথবা অবস্থানের) উপর নির্ভর করে।
- Duplicates: List ডুপ্লিকেট উপাদানগুলো অনুমোদন করে, অর্থাৎ একই এলিমেন্ট একাধিকবার স্টোর করা যেতে পারে।
- Access: List এর মাধ্যমে ইনডেক্স ব্যবহার করে এলিমেন্টগুলো অ্যাক্সেস করা যায়।
- Implementation Examples:
ArrayListLinkedListVector
Example:
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple"); // Duplicate allowed
System.out.println(list); // Output: [Apple, Banana, Apple]
2. Set (Interface)
- Definition: Set একটি unordered কনটেইনার যেখানে ডেটা সাজানোর জন্য কোনো নির্দিষ্ট নিয়ম নেই, এবং এটি ডুপ্লিকেট উপাদান অনুমোদন করে না।
- Ordering: Set এর মধ্যে এলিমেন্টগুলোর কোনো নির্দিষ্ট অর্ডার থাকে না। তবে, কিছু implementation যেমন
TreeSetএলিমেন্টগুলো সজ্জিত করতে পারে। - Duplicates: Set ডুপ্লিকেট এলিমেন্টগুলো অনুমোদন করে না। অর্থাৎ, যদি আপনি কোনো এক উপাদান আবার একই Set এ যোগ করার চেষ্টা করেন, তবে তা অগ্রাহ্য করা হয়।
- Implementation Examples:
HashSet(unordered)LinkedHashSet(insertion order maintained)TreeSet(sorted)
Example:
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple"); // Duplicate not allowed
System.out.println(set); // Output: [Apple, Banana]
3. Map (Interface)
- Definition: Map একটি key-value pair কনটেইনার যেখানে একটি key সম্পর্কিত একটি value থাকে। Map ডুপ্লিকেট key অনুমোদন করে না, কিন্তু ভ্যালু ডুপ্লিকেট হতে পারে।
- Ordering: Map এর মধ্যে এলিমেন্টগুলি key এর উপর ভিত্তি করে সংরক্ষিত হয়, তবে কিছু Map implementation যেমন
TreeMapএলিমেন্টগুলো সজ্জিত করতে পারে। - Duplicates: Map key ডুপ্লিকেট হতে পারে না, তবে value ডুপ্লিকেট হতে পারে।
- Access: Map এ key ব্যবহার করে value অ্যাক্সেস করা হয়।
- Implementation Examples:
HashMapLinkedHashMapTreeMapHashtable
Example:
Map<String, String> map = new HashMap<>();
map.put("1", "Apple");
map.put("2", "Banana");
map.put("1", "Orange"); // Duplicate key is not allowed (overwrites the value)
System.out.println(map); // Output: {1=Orange, 2=Banana}
List, Set, এবং Map এর মধ্যে পার্থক্য
| Feature | List | Set | Map |
|---|---|---|---|
| Ordering | Ordered (Elements are stored in sequence) | Unordered (Generally, no specific order) | Ordered based on keys (or sorted in TreeMap) |
| Duplicates | Allows duplicates | Does not allow duplicates | Does not allow duplicate keys, but allows duplicate values |
| Access | Access via index | No index-based access, iterates over elements | Access via keys to get values |
| Null Elements | Allows null elements | Allows null elements (except TreeSet) | Allows null keys and values (except Hashtable) |
| Implementation | ArrayList, LinkedList, Vector | HashSet, LinkedHashSet, TreeSet | HashMap, LinkedHashMap, TreeMap, Hashtable |
| Use Case | Ordered collection of items, allows duplicates | Unique collection of items, no duplicates | Storing key-value pairs where keys are unique |
Usage Context:
- List:
- When to use: যখন আপনাকে একটি সিকোয়েন্স অনুযায়ী ডেটা স্টোর করতে হয় এবং ডুপ্লিকেট উপাদান অনুমোদিত থাকে।
- Example use case: ডেটার একটি লিস্ট, যেমন: নামের তালিকা, ক্রম অনুসারে ডেটা সংগ্রহ।
- Set:
- When to use: যখন আপনাকে একটী নির্দিষ্ট উপাদান তালিকা চান যা ইউনিক (অর্থাৎ ডুপ্লিকেট নয়) এবং এলিমেন্টের কোনো নির্দিষ্ট অর্ডার প্রাসঙ্গিক নয়।
- Example use case: ইউনিক আইটেমের সংগ্রহ, যেমন: ভিন্ন ভিন্ন ব্যবহারকারী আইডি বা ইউনিক ইমেল ঠিকানা।
- Map:
- When to use: যখন আপনি key-value জোড়া সংরক্ষণ করতে চান, যেখানে প্রতিটি key এর জন্য একটি নির্দিষ্ট value থাকতে হবে।
- Example use case: একটি ডিকশনারি, যেখানে প্রতিটি শব্দের জন্য একটি অর্থ (value) থাকে এবং শব্দ (key) একমাত্র থাকে।
- List: Ordered, Duplicates Allowed.
- Set: Unordered, No Duplicates Allowed.
- Map: Key-Value Pairs, No Duplicate Keys.
এগুলি Java Collections Framework এর অন্যতম প্রধান অংশ এবং এগুলির মধ্যে পার্থক্য বুঝে সঠিক ডেটা স্ট্রাকচার নির্বাচন করা খুবই গুরুত্বপূর্ণ।
Content added By
Read more