কম্পিউটার টিউটোরিয়াল

জাভাতে TreeSet এবং HashSet-এর পার্থক্য

HashSet এবং TreeSet উভয়ই কালেকশন ফ্রেমওয়ার্কের অংশ। HashSet, Set ইন্টারফেসের ইমপ্লিমেন্টেশন, TreeSet, SortedSet ইমপ্লিমেন্ট করে। TreeSet TreeMap দ্বারা ব্যাকড, HashSet HashMap দ্বারা ব্যাকড।

TreeSet এবং HashSet-এর তুলনা

ক্রমিক নং বিষয় HashSet TreeSet
১ ইমপ্লিমেন্টেশন HashTable ব্যবহার করে ইমপ্লিমেন্টেড (আধুনিক ভার্সনে HashMap) ট্রি স্ট্রাকচার (Red-Black Tree) ব্যবহার করে
২ নাল অবজেক্ট নাল অবজেক্ট অনুমতি দেয় নাল অবজেক্ট অনুমতি দেয় না, NullPointerException নিক্ষেপ করে
৩ মেথড দুটি অবজেক্ট তুলনার জন্য equals() মেথড ব্যবহার করে দুটি অবজেক্ট তুলনার জন্য compareTo()/compare() মেথড ব্যবহার করে
৪ হেটেরোজিনাস অবজেক্ট হেটেরোজিনাস অবজেক্ট অনুমতি দেয় না (টাইপ সেফটি) হেটেরোজিনাস অবজেক্ট অনুমতি দেয় (যদি কমপ্যাবল হয়)
৫ অর্ডারিং কোনো অর্ডার মেনে চলে না অবজেক্ট সর্টেড অর্ডারে রাখে

TreeSet উদাহরণ

class TreeSetExample {
    public static void main(String[] args) {
        TreeSet<String> treeset = new TreeSet<>();
        treeset.add("Good");
        treeset.add("For");
        treeset.add("Health");
        treeset.add("Good"); // ডুপ্লিকেট
        
        System.out.println("TreeSet: ");
        for (String temp : treeset) {
            System.out.println(temp);
        }
    }
}

আউটপুট

TreeSet:
For
Good
Health

HashSet উদাহরণ

class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> hashSet = new HashSet<>();
        hashSet.add("Good");
        hashSet.add("For");
        hashSet.add("Health");
        hashSet.add("Good"); // ডুপ্লিকেট
        
        System.out.println("HashSet: ");
        for (String temp : hashSet) {
            System.out.println(temp);
        }
    }
}

আউটপুট

HashSet:
Health
For
Good

পারফরম্যান্স ও ব্যবহার

  • HashSet: O(1) এড/রিমুভ/কন্টেইনস, অর্ডার দরকার নেই
  • TreeSet: O(log n) এড/রিমুভ/কন্টেইনস, সর্টেড অর্ডার দরকার হলে
  • LinkedHashSet: ইনসারশন অর্ডার মেনে চলে, HashSet-এর মতো পারফরম্যান্স
  1. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  2. জাভাতে ConcurrentHashMap এবং Synchronized HashMap-এর পার্থক্য

  3. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  4. জাভাতে ArrayList এবং HashSet-এর পার্থক্য