"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में कस्टम तुलनित्र फ़ंक्शन कैसे लिखें?

जावा में कस्टम तुलनित्र फ़ंक्शन कैसे लिखें?

2024-11-01 को प्रकाशित
ब्राउज़ करें:711

How to Write a Custom Comparator Function in Java?

1. जावा में तुलनित्र की मूल बातें समझना

जावा में, Comparator इंटरफ़ेस दो वस्तुओं की तुलना करके उनका क्रम निर्धारित करने का एक तरीका प्रदान करता है। यह विशेष रूप से तब उपयोगी होता है जब आप सूचियों या सरणियों जैसे संग्रहों को कस्टम क्रम में क्रमबद्ध करना चाहते हैं।

एक कस्टम तुलनित्र की आवश्यकता तब होती है जब वस्तुओं का प्राकृतिक क्रम (जैसा कि उनके तुलनीय कार्यान्वयन द्वारा परिभाषित) आपकी आवश्यकताओं को पूरा नहीं करता है। उदाहरण के लिए, वेतन, नाम या उम्र के आधार पर कर्मचारी वस्तुओं की सूची को क्रमबद्ध करने के लिए अलग-अलग तुलनित्रों की आवश्यकता हो सकती है।

2. एक कस्टम तुलनित्र फ़ंक्शन लिखना

आइए एक कस्टम तुलनित्र बनाने की प्रक्रिया पर चलते हैं।

2.1 उदाहरण: वेतन के आधार पर कर्मचारियों की सूची क्रमबद्ध करना

एक वर्ग पर विचार करें कर्मचारी फ़ील्ड के साथ नाम , उम्र , और वेतन। हम कर्मचारी वस्तुओं की एक सूची को वेतन के अनुसार आरोही क्रम में क्रमबद्ध करना चाहते हैं।

import java.util.Comparator;

class Employee {
    private String name;
    private int age;
    private double salary;

    // Constructor, getters, and setters
    public Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public double getSalary() {
        return salary;
    }

    @Override
    public String toString() {
        return "Employee{"   "name='"   name   '''   ", age="   age   ", salary="   salary   '}';
    }
}

class SalaryComparator implements Comparator {
    @Override
    public int compare(Employee e1, Employee e2) {
        return Double.compare(e1.getSalary(), e2.getSalary());
    }
}

इस उदाहरण में, SalaryComparator वर्ग Comparator इंटरफ़ेस लागू करता है और कर्मचारियों की उनके वेतन से तुलना करने के लिए तुलना विधि को ओवरराइड करता है।

2.2 डेमो: कर्मचारी सूची को क्रमबद्ध करना

अब, कर्मचारियों की एक सूची बनाएं और इसे हमारे कस्टम Comparator का उपयोग करके क्रमबद्ध करें।

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List employees = new ArrayList();
        employees.add(new Employee("John", 28, 50000));
        employees.add(new Employee("Anna", 32, 75000));
        employees.add(new Employee("Mike", 25, 45000));

        System.out.println("Before Sorting:");
        employees.forEach(System.out::println);

        // Sort employees by salary
        Collections.sort(employees, new SalaryComparator());

        System.out.println("
After Sorting by Salary:");
        employees.forEach(System.out::println);
    }
}

2.3 डेमो का परिणाम

उपरोक्त कोड चलाने से निम्नलिखित आउटपुट उत्पन्न होगा:

Before Sorting:
Employee{name='John', age=28, salary=50000.0}
Employee{name='Anna', age=32, salary=75000.0}
Employee{name='Mike', age=25, salary=45000.0}

After Sorting by Salary:
Employee{name='Mike', age=25, salary=45000.0}
Employee{name='John', age=28, salary=50000.0}
Employee{name='Anna', age=32, salary=75000.0}

कर्मचारियों की सूची अब उनके वेतन के आधार पर आरोही क्रम में क्रमबद्ध की गई है, कस्टम Comparator के लिए धन्यवाद।

3. उन्नत कस्टम तुलनित्र

कभी-कभी, आपको अधिक जटिल तुलना तर्क की आवश्यकता हो सकती है या आप एकाधिक फ़ील्ड के आधार पर क्रमबद्ध करना चाह सकते हैं।

3.1 उदाहरण: अनेक मानदंडों के आधार पर वर्गीकरण

आइए अपने तुलनित्र को संशोधित करके पहले वेतन के आधार पर और फिर बराबरी की स्थिति में नाम के आधार पर क्रमबद्ध करें।

class SalaryThenNameComparator implements Comparator {
    @Override
    public int compare(Employee e1, Employee e2) {
        int salaryCompare = Double.compare(e1.getSalary(), e2.getSalary());
        if (salaryCompare == 0) {
            return e1.getName().compareTo(e2.getName());
        }
        return salaryCompare;
    }
}

3.2 डेमो: वेतन और नाम के आधार पर वर्गीकरण

SalaryThenNameComparator का उपयोग करके, अब आप कर्मचारियों को वेतन और नाम के आधार पर क्रमबद्ध कर सकते हैं:

Collections.sort(employees, new SalaryThenNameComparator());

4. निष्कर्ष

जावा में एक कस्टम तुलनित्र फ़ंक्शन लिखने से आप विशिष्ट आवश्यकताओं को पूरा करने के लिए संग्रह के सॉर्टिंग व्यवहार को तैयार कर सकते हैं। चाहे आपको किसी एकल क्षेत्र द्वारा सरल तुलना की आवश्यकता हो या एकाधिक मानदंडों द्वारा जटिल छँटाई की, तुलनित्र एक लचीला और शक्तिशाली समाधान प्रदान करता है।

यदि आपके कोई प्रश्न हैं या आगे स्पष्टीकरण की आवश्यकता है, तो बेझिझक नीचे एक टिप्पणी छोड़ें!

यहां अधिक पोस्ट पढ़ें : जावा में एक कस्टम तुलनित्र फ़ंक्शन कैसे लिखें?

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/anh_trntun_4732cf3d299/how-to-write-a-custom-comparator-function-in-java-198j?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3