হ্যাশসেট এবং অ্যারেলিস্ট উভয়ই জাভা কালেকশন ফ্রেমওয়ার্কের সবচেয়ে গুরুত্বপূর্ণ ক্লাস।
নিচে ArrayList এবং HashSet এর মধ্যে গুরুত্বপূর্ণ পার্থক্য রয়েছে।
Sr. না। | কী | অ্যারেলিস্ট | হ্যাশসেট |
---|---|---|---|
1 | বাস্তবায়ন | ArrayList হল তালিকা ইন্টারফেসের বাস্তবায়ন। | অন্যদিকে হ্যাশসেট হল একটি সেট ইন্টারফেসের বাস্তবায়ন। |
2 | অভ্যন্তরীণ বাস্তবায়ন | অ্যারেলিস্ট অভ্যন্তরীণভাবে এর বাস্তবায়নের জন্য অ্যারে প্রয়োগ করে। | হ্যাশসেট অভ্যন্তরীণভাবে এর বাস্তবায়নের জন্য হ্যাশম্যাপ ব্যবহার করে। |
3 | উপাদানের ক্রম | অ্যারেলিস্ট সন্নিবেশের ক্রম বজায় রাখে অর্থাৎ বস্তুর ক্রম যাতে তারা সন্নিবেশ করা হয়। | হ্যাশসেট একটি ক্রমবিহীন সংগ্রহ এবং কোনো ক্রম বজায় রাখে না। |
4 | সদৃশ | অ্যারেলিস্ট এর সংগ্রহে ডুপ্লিকেট মান অনুমোদন করে। | অন্যদিকে হ্যাশসেটে ডুপ্লিকেট উপাদান অনুমোদিত নয়৷ | ৷
5 | সূচক কর্মক্ষমতা | অ্যারেলিস্ট তার কর্মক্ষমতার জন্য সূচী ব্যবহার করে অর্থাৎ এর সূচক ভিত্তিক একটি get(index) কল করে অবজেক্ট পুনরুদ্ধার করতে পারে বা রিমুভ(index) কল করে অবজেক্ট রিমুভ করতে পারে | হ্যাশসেট সম্পূর্ণরূপে অবজেক্টের উপর ভিত্তি করে এবং এটি get() পদ্ধতি প্রদান করে না। |
6 | শূন্য অনুমোদিত | কোন সীমাবদ্ধতা ছাড়াই অ্যারেলিস্টে যেকোনো সংখ্যক নাল মান সন্নিবেশ করা যেতে পারে। | অন্যদিকে হ্যাশসেট তার সংগ্রহে শুধুমাত্র একটি নাল মানকে অনুমতি দেয়, যার পরে কোন নাল মান যোগ করার অনুমতি নেই। |
অ্যারেলিস্ট বনাম হ্যাশসেটের উদাহরণ
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