HashSet এবং ArrayList উভয়ই জাভা কালেকশন ফ্রেমওয়ার্কের সবচেয়ে গুরুত্বপূর্ণ ক্লাসগুলো।
ArrayList এবং HashSet-এর মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো নিচে দেওয়া হলো:
| ক্র. নং | কী | ArrayList | HashSet |
|---|---|---|---|
| ১ | ইমপ্লিমেন্টেশন | ArrayList হল লিস্ট ইন্টারফেসের ইমপ্লিমেন্টেশন। | HashSet হল সেট ইন্টারফেসের ইমপ্লিমেন্টেশন। |
| ২ | আন্তরিক ইমপ্লিমেন্টেশন | ArrayList আંતরিকভাবে অ্যারে ব্যবহার করে। | HashSet আন্তরিকভাবে HashMap ব্যবহার করে। |
| ৩ | এলিমেন্টের অর্ডার | ArrayList ইনসার্শন অর্ডার মেনে চলে। | HashSet একটি অনঅর্ডার্ড কালেকশন, কোনো অর্ডার মেনে চলে না। |
| ৪ | ডুপ্লিকেট | ArrayList ডুপ্লিকেট ভ্যালু অনুমতি দেয়। | HashSet-এ ডুপ্লিকেট এলিমেন্ট অনুমতি নেই। |
| ৫ | ইন্ডেক্স পারফরম্যান্স | ArrayList ইন্ডেক্স-ভিত্তিক, get(index) বা remove(index) দিয়ে অ্যাক্সেস করা যায়। | HashSet সম্পূর্ণ অবজেক্ট-ভিত্তিক, get() মেথড নেই। |
| ৬ | নাল অনুমতি | ArrayList-এ যেকোনো সংখ্যক নাল ভ্যালু ইনসার্ট করা যায়। | HashSet-এ শুধু একটি নাল ভ্যালু অনুমতির পরে আর নাল অ্যাড করা যায় না। |
ArrayList vs HashSet উদাহরণ
JavaTester.java
import java.io.*; import java.util.*; public class JavaTester { public static void main(String[] args) throws IOException{ int n = 5; List<Integer> al = new ArrayList<>(n); for (int i = 1; i <= n; i++) { al.add(i); } System.out.println(al); al.remove(3); System.out.println(al); for (int i = 0; i < al.size(); i++) { System.out.print(al.get(i) + " "); } } }
আউটপুট
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5
উদাহরণ
JavaTester.java
import java.util.HashSet; import java.util.Set; public class JavaTester { public static void main(String[] args){ Set<Integer> hs = new HashSet<>(); hs.add(1); hs.add(2); hs.add(3); hs.add(4); hs.add(4); for (Integer temp : hs) { System.out.print(temp + " "); } } }
আউটপুট
1 2 3 4