Fixed Order Comparator এর ব্যবহার

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) ComparatorUtils এবং Object Comparison |
157
157

Apache Commons Collections লাইব্রেরির FixedOrderComparator একটি শক্তিশালী কম্প্যারেটর যা ডেটার উপাদানগুলির একটি নির্দিষ্ট অর্ডারে তুলনা করার জন্য ব্যবহৃত হয়। এটি একটি Comparator ইন্টারফেস বাস্তবায়ন করে, যা একটি List বা Set এর উপাদানগুলি একটি নির্দিষ্ট ক্রমে সাজাতে সাহায্য করে, সাধারণত আপনি যে ক্রমে চান বা যেভাবে উপাদানগুলি সাজাতে চান তা মেনে।

এটি বিশেষভাবে উপকারী যখন আপনাকে একটি predefined order অনুসারে এলিমেন্টগুলিকে সাজাতে হবে, যেমন একটি List বা Set এর উপাদানগুলিকে কোনো নির্দিষ্ট ক্রমে সাজানো।

১. FixedOrderComparator এর বৈশিষ্ট্য

FixedOrderComparator মূলত নিম্নলিখিত বৈশিষ্ট্যগুলির জন্য ব্যবহৃত হয়:

  • একটি List বা Set এর উপাদানগুলি fixed (নির্দিষ্ট) ক্রমে সাজানোর জন্য।
  • ক্রম অনুযায়ী উপাদানগুলোকে prioritize বা rank করার জন্য।
  • যখন আপনি একটি নির্দিষ্ট ক্রমে sorting করতে চান, তবে এটি বিশেষভাবে সহায়ক।

২. FixedOrderComparator তৈরি করা

FixedOrderComparator এর উদাহরণ দেখলে সহজে বুঝা যাবে কিভাবে এটি কাজ করে। এটি একটি List বা Set এর উপাদানগুলিকে একটি নির্দিষ্ট অর্ডারে সাজাতে সাহায্য করে।

উদাহরণ: FixedOrderComparator এর ব্যবহার

ধরা যাক, আপনার কাছে কয়েকটি স্ট্রিং উপাদান আছে, এবং আপনি চান যে সেগুলো একটি নির্দিষ্ট অর্ডারে সাজানো হোক। আপনি FixedOrderComparator ব্যবহার করে এই অর্ডারটি সুনিশ্চিত করতে পারেন।

import org.apache.commons.collections4.ComparatorUtils;
import org.apache.commons.collections4.comparators.FixedOrderComparator;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class FixedOrderComparatorExample {
    public static void main(String[] args) {
        // Create a list of strings
        List<String> fruits = Arrays.asList("apple", "banana", "cherry", "date");

        // Define the fixed order of the elements
        List<String> order = Arrays.asList("banana", "apple", "cherry", "date");

        // Create the FixedOrderComparator using the predefined order
        FixedOrderComparator<String> comparator = new FixedOrderComparator<>(order);

        // Sort the fruits list using the FixedOrderComparator
        Collections.sort(fruits, comparator);

        // Print the sorted list
        System.out.println(fruits);  // Output: [banana, apple, cherry, date]
    }
}

এখানে:

  • একটি List তৈরি করা হয়েছে যা কিছু ফ্রুট নাম ধারণ করছে: "apple", "banana", "cherry", "date".
  • একটি অন্য List তৈরি করা হয়েছে যেখানে আপনি predefined order নির্ধারণ করেছেন: "banana", "apple", "cherry", "date".
  • তারপর, FixedOrderComparator ব্যবহার করে আমরা এই উল্লিখিত ক্রমে fruits তালিকাটি সাজিয়েছি।

আউটপুট:

[banana, apple, cherry, date]

এটি দেখাচ্ছে কিভাবে একটি predefined order ব্যবহার করে তালিকাটি সাজানো হলো, যা FixedOrderComparator এর মাধ্যমে সম্ভব হয়েছে।

৩. FixedOrderComparator এর অন্যান্য ব্যবহার

  1. Set এ নির্দিষ্ট অর্ডারে উপাদান রাখা: আপনি যদি একটি Set এর উপাদানগুলিকে নির্দিষ্ট অর্ডারে রাখতে চান, তবে FixedOrderComparator ব্যবহার করতে পারেন। তবে, মনে রাখবেন যে, Set এ সাধারণত duplicates থাকতে পারে না, তাই এই ক্ষেত্রে List ব্যবহার বেশি উপকারী।
  2. Custom Sort Order: যদি আপনার কাছে কিছু ডেটা থাকে এবং আপনি সেই ডেটার একটি নির্দিষ্ট অর্ডার চান, আপনি FixedOrderComparator ব্যবহার করে খুব সহজেই সেই ডেটা সাজাতে পারেন।
  3. Sorting Complex Objects: আপনি যদি একটি complex object (যেমন, Custom Class) এর ওপর FixedOrderComparator প্রয়োগ করতে চান, তবে সেই ক্লাসের মধ্যে উপাদানগুলির অর্ডার সংজ্ঞায়িত করে তার উপর Comparator তৈরি করতে পারেন।

উদাহরণ: FixedOrderComparator with Custom Objects

ধরা যাক, আপনি একটি Person ক্লাস তৈরি করেছেন এবং তাদের নামের উপর নির্দিষ্ট অর্ডার দিতে চান।

import org.apache.commons.collections4.comparators.FixedOrderComparator;

import java.util.Arrays;
import java.util.List;

public class FixedOrderComparatorWithCustomObjects {
    static class Person {
        String name;

        Person(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        @Override
        public String toString() {
            return name;
        }
    }

    public static void main(String[] args) {
        List<Person> people = Arrays.asList(new Person("John"), new Person("Alice"), new Person("Bob"));

        // Define the fixed order
        List<String> order = Arrays.asList("Alice", "Bob", "John");

        // Create the FixedOrderComparator using the predefined order
        FixedOrderComparator<Person> comparator = new FixedOrderComparator<>(order);

        // Sort the list using the FixedOrderComparator
        people.sort((p1, p2) -> comparator.compare(p1.getName(), p2.getName()));

        // Print the sorted list
        System.out.println(people);  // Output: [Alice, Bob, John]
    }
}

এখানে:

  • Person ক্লাস তৈরি করা হয়েছে, যেখানে name নামে একটি প্রপার্টি রয়েছে।
  • FixedOrderComparator ব্যবহার করে, people লিস্টের Person অবজেক্টগুলিকে name এর ভিত্তিতে নির্দিষ্ট অর্ডারে সাজানো হয়েছে।

আউটপুট:

[Alice, Bob, John]

এটি দেখাচ্ছে কিভাবে FixedOrderComparator ব্যবহার করে একটি custom object এর উপাদানগুলিকে নির্দিষ্ট অর্ডারে সাজানো যেতে পারে।


৪. FixedOrderComparator এর সুবিধা এবং ব্যবহার ক্ষেত্র

  1. কাস্টম অর্ডার প্রয়োগ: যখন আপনি চান যে কোনো List বা Set এর উপাদানগুলো একটি নির্দিষ্ট অর্ডারে সাজানো হোক, তখন এটি খুবই কার্যকরী।
  2. ফ্লেক্সিবল কম্প্যারিজন: FixedOrderComparator আপনাকে যেকোনো ধরনের custom order প্রদান করার সুযোগ দেয়, যেমন নামের অর্ডার, প্রাধান্য অনুযায়ী সাজানো ইত্যাদি।
  3. ডেটা ম্যানিপুলেশন: আপনি FixedOrderComparator ব্যবহার করে sorting, filtering, এবং prioritization এর মতো অপারেশন করতে পারেন।

সারাংশ

FixedOrderComparator হল Apache Commons Collections লাইব্রেরির একটি গুরুত্বপূর্ণ ক্লাস যা একটি predefined order অনুযায়ী Collections এর উপাদানগুলোকে সাজানোর জন্য ব্যবহৃত হয়। এটি Comparator ইন্টারফেসের একটি বাস্তবায়ন যা List বা Set এর উপাদানগুলোকে নির্দিষ্ট ক্রমে সাজাতে সাহায্য করে। এটি খুবই উপকারী যখন আপনি চান যে ডেটার উপাদানগুলো একটি নির্দিষ্ট অর্ডারে সাজানো হোক, যেমন priority, ranking, বা natural ordering অনুসারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion