Java Technologies উদাহরণ সহ Comparisons এবং Equality Checking গাইড ও নোট

315

Java Time Package এর BigInteger এবং BigDecimal ক্লাসের জন্য Comparison এবং Equality Checking করার জন্য বেশ কিছু মেথড সরবরাহ করা হয়। compareTo() এবং equals() দুটি প্রধান মেথড যা সংখ্যা বা তারিখের তুলনা এবং সমতা যাচাই করতে ব্যবহৃত হয়।

BigInteger এবং BigDecimal এর মধ্যে Comparison এবং Equality Checking:

1. compareTo() Method:

compareTo() মেথডটি দুটি সংখ্যা (অথবা বড় সংখ্যার ক্ষেত্রে BigInteger এবং BigDecimal) তুলনা করার জন্য ব্যবহৃত হয়। এটি একটি int মান ফেরত দেয়:

  • 0 যদি দুটি সংখ্যা সমান হয়।
  • < 0 যদি বর্তমান অবজেক্টটি কম হয়।
  • > 0 যদি বর্তমান অবজেক্টটি বড় হয়।

2. equals() Method:

equals() মেথডটি দুটি সংখ্যা বা অবজেক্টের মধ্যে সমতা যাচাই করতে ব্যবহৃত হয়। এটি boolean মান (true বা false) ফেরত দেয়।

  • এটি শুধু তখন true ফেরত দেয় যখন দুটি অবজেক্টের মান এবং প্রকার অস্তিত্বগতভাবে সমান হয়।

Comparisons and Equality Checking with BigInteger

Example: BigInteger - Comparison and Equality Checking

import java.math.BigInteger;

public class BigIntegerComparisonExample {
    public static void main(String[] args) {
        // Create two BigInteger objects
        BigInteger num1 = new BigInteger("1234567890123456789012345678901234567890");
        BigInteger num2 = new BigInteger("1234567890123456789012345678901234567890");
        BigInteger num3 = new BigInteger("9876543210987654321098765432109876543210");

        // Using compareTo() to compare num1 and num2
        System.out.println("Comparing num1 and num2 (compareTo): " + num1.compareTo(num2));  // Output: 0 (equal)
        
        // Using compareTo() to compare num1 and num3
        System.out.println("Comparing num1 and num3 (compareTo): " + num1.compareTo(num3));  // Output: -1 (num1 < num3)

        // Using equals() to check equality between num1 and num2
        System.out.println("Are num1 and num2 equal? (equals): " + num1.equals(num2));  // Output: true

        // Using equals() to check equality between num1 and num3
        System.out.println("Are num1 and num3 equal? (equals): " + num1.equals(num3));  // Output: false
    }
}

Output:

Comparing num1 and num2 (compareTo): 0
Comparing num1 and num3 (compareTo): -1
Are num1 and num2 equal? (equals): true
Are num1 and num3 equal? (equals): false

Explanation:

  • compareTo(): প্রথমে num1 এবং num2 সমান হওয়ায় এটি 0 ফেরত দিয়েছে। পরবর্তীতে num1 ছোট হওয়ায় num3 এর তুলনায় এটি -1 ফেরত দিয়েছে।
  • equals(): num1 এবং num2 সমান হওয়ায় এটি true ফেরত দিয়েছে, এবং num1 এবং num3 আলাদা হওয়ায় এটি false ফেরত দিয়েছে।

Comparisons and Equality Checking with BigDecimal

Example: BigDecimal - Comparison and Equality Checking

import java.math.BigDecimal;

public class BigDecimalComparisonExample {
    public static void main(String[] args) {
        // Create two BigDecimal objects
        BigDecimal dec1 = new BigDecimal("123.456");
        BigDecimal dec2 = new BigDecimal("123.456");
        BigDecimal dec3 = new BigDecimal("987.654");

        // Using compareTo() to compare dec1 and dec2
        System.out.println("Comparing dec1 and dec2 (compareTo): " + dec1.compareTo(dec2));  // Output: 0 (equal)
        
        // Using compareTo() to compare dec1 and dec3
        System.out.println("Comparing dec1 and dec3 (compareTo): " + dec1.compareTo(dec3));  // Output: -1 (dec1 < dec3)

        // Using equals() to check equality between dec1 and dec2
        System.out.println("Are dec1 and dec2 equal? (equals): " + dec1.equals(dec2));  // Output: true

        // Using equals() to check equality between dec1 and dec3
        System.out.println("Are dec1 and dec3 equal? (equals): " + dec1.equals(dec3));  // Output: false
    }
}

Output:

Comparing dec1 and dec2 (compareTo): 0
Comparing dec1 and dec3 (compareTo): -1
Are dec1 and dec2 equal? (equals): true
Are dec1 and dec3 equal? (equals): false

Explanation:

  • compareTo(): dec1 এবং dec2 এর মান সমান হওয়ায় এটি 0 ফেরত দিয়েছে। dec1 dec3 থেকে ছোট হওয়ায় এটি -1 ফেরত দিয়েছে।
  • equals(): dec1 এবং dec2 সমান হওয়ায় এটি true ফেরত দিয়েছে, এবং dec1 এবং dec3 আলাদা হওয়ায় এটি false ফেরত দিয়েছে।

Key Differences Between compareTo() and equals():

  1. compareTo():
    • এটি int টাইপের মান ফেরত দেয়: 0 (সমান), -1 (ছোট), 1 (বড়)।
    • এটি সংখ্যার বড়ত্ব বা ছোটত্ব নির্ধারণ করতে ব্যবহৃত হয়, তুলনা করার জন্য।
    • এটি কখনো ArithmeticException তৈরি করতে পারে যদি সংখ্যার মধ্যে পার্থক্য অনন্ত (infinite) হয়।
  2. equals():
    • এটি boolean ফলাফল ফেরত দেয়: true যদি সংখ্যার মান এক হয়, এবং false যদি সংখ্যা সমান না হয়।
    • এটি সংখ্যা সমান হওয়ার পর্যালোচনা করে, এবং প্রকারও একই থাকতে হবে।

Best Practices for Comparison and Equality:

  • compareTo() ব্যবহার করুন যখন আপনি বড়ত্ব বা ছোটত্ব পরীক্ষা করতে চান (যেমন sorting বা range checking)।
  • equals() ব্যবহার করুন যখন আপনি দুটি সংখ্যার সমতা যাচাই করতে চান, বিশেষত যখন আপনি নিশ্চিত হতে চান যে দুইটি সংখ্যা প্রকৃতপক্ষে সমান (value equality)।
  • BigDecimal এবং BigInteger ক্লাসের মধ্যে compareTo() এর ব্যবহারে, রাউন্ডিং বা ডেসিমাল প্লেসের ভুলের কারণে ভুল ফলাফল এড়াতে হবে।

  • compareTo() এবং equals() মেথড দুটি পূর্ণসংখ্যা বা বড় সংখ্যার তুলনা এবং সমতা যাচাই করার জন্য ব্যবহৃত হয়, কিন্তু এগুলোর মধ্যে পার্থক্য রয়েছে।
  • compareTo() ছোট, বড় বা সমান নির্ধারণ করে এবং equals() কেবলমাত্র সমতার মূল্যায়ন করে।
  • এই মেথডগুলো সঠিকভাবে ব্যবহার করে আপনি BigInteger এবং BigDecimal এর মধ্যে তুলনা এবং সমতা যাচাইয়ের কার্যক্রম সহজভাবে সম্পাদন করতে পারবেন।
Content added By
Promotion

Are you sure to start over?

Loading...