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

C#-এ দুটি HashSet-এর ইন্টারসেকশন (সাধারণ এলিমেন্ট)

C#-এ HashSet<T>.IntersectWith(IEnumerable<T> other) মেথড বর্তমান HashSet-কে সংশোধন করে যাতে শুধু অন্য সেটের সাথে সাধারণ এলিমেন্টগুলো থাকে। এটি সেট থিয়োরির ইন্টারসেকশন অপারেশন।

উদাহরণ ১: স্ট্রিং HashSet ইন্টারসেকশন

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        HashSet set1 = new HashSet();
        set1.Add("AB");
        set1.Add("CD");
        set1.Add("EF");
        set1.Add("AB"); // ডুপ্লিকেট বাদ যাবে
        set1.Add("IJ");
        set1.Add("KL");
        set1.Add("EF"); // ডুপ্লিকেট
        set1.Add("OP");

        Console.WriteLine("HashSet1-এ এলিমেন্টসমূহ");
        foreach (string val in set1) {
            Console.WriteLine(val);
        }

        HashSet set2 = new HashSet();
        set2.Add("EF");
        set2.Add("KL");

        Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ");
        foreach (string val in set2) {
            Console.WriteLine(val);
        }

        Console.WriteLine("HashSet2-এ এলিমেন্ট সংখ্যা = " + set2.Count);
        set2.Remove("KL");
        Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ (আপডেটেড)...");
        foreach (string res in set2) {
            Console.WriteLine(res);
        }
        Console.WriteLine("HashSet2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = " + set2.Count);

        Console.WriteLine("\nset1 কি set2-এর সুপারসেট? " + set1.IsSupersetOf(set2));

        set1.IntersectWith(set2);
        Console.WriteLine("\nইন্টারসেকশন ফলাফল...");
        foreach (string str in set1) {
            Console.WriteLine(str);
        }
    }
}

আউটপুট

HashSet1-এ এলিমেন্টসমূহ
AB
CD
EF
IJ
KL
OP
HashSet2-এ এলিমেন্টসমূহ
EF
KL
HashSet2-এ এলিমেন্ট সংখ্যা = 2
HashSet2-এ এলিমেন্টসমূহ (আপডেটেড)...
EF
HashSet2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = 1
set1 কি set2-এর সুপারসেট? True
ইন্টারসেকশন ফলাফল...
EF

উদাহরণ ২: ইন্টিজার HashSet ইন্টারসেকশন

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        HashSet set1 = new HashSet();
        set1.Add(30);
        set1.Add(60);
        set1.Add(70);
        set1.Add(80);
        set1.Add(100);
        set1.Add(125);

        Console.WriteLine("HashSet1-এ এলিমেন্টসমূহ");
        foreach (int val in set1) {
            Console.WriteLine(val);
        }

        HashSet set2 = new HashSet();
        set2.Add(30);
        set2.Add(60);
        set2.Add(70);
        set2.Add(80);
        set2.Add(100);
        set2.Add(125);

        Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ");
        foreach (int val in set2) {
            Console.WriteLine(val);
        }

        set1.IntersectWith(set2);
        Console.WriteLine("\nইন্টারসেকশন ফলাফল...");
        foreach (int val in set1) {
            Console.WriteLine(val);
        }
    }
}

আউটপুট

HashSet1-এ এলিমেন্টসমূহ
30
60
70
80
100
125
HashSet2-এ এলিমেন্টসমূহ
30
60
70
80
100
125
ইন্টারসেকশন ফলাফল...
30
60
70
80
100
125

ব্যাখ্যা: IntersectWith মূল সেটকে মিউটেট করে (in-place)। ডুপ্লিকেট অটোমেটিক্যালি হ্যান্ডেল হয় কারণ HashSet ডুপ্লিকেট অনুমতি দেয় না। ইন্টারসেকশন後の সেটে শুধু সাধারণ এলিমেন্টগুলো থাকে। এটি O(n) সময়ে কাজ করে যেখানে n হলো বর্তমান সেটের আকার।

  1. JavaScript-এ দুটি অ্যারের ইন্টারসেকশন (Intersection) বের করা

  2. MySQL-এ DATE_ADD() ব্যবহার করে তারিখে ২ সপ্তাহ যোগ করা

  3. C-তে দুটি জটিল সংখ্যা যোগ করার প্রোগ্রাম

  4. C++-এ দুটি লিঙ্কড লিস্টের ইন্টারসেকশন পয়েন্ট খুঁজে বের করা