Java.math প্যাকেজের BigInteger এবং BigDecimal ক্লাসগুলি বেশ শক্তিশালী এবং বড় সংখ্যার গাণিতিক হিসাব, রাউন্ডিং এবং এক্সপোনেনশিয়াল অপারেশন করতে ব্যবহৃত হয়। এই ক্লাসগুলির সাথে অন্যান্য Java প্যাকেজ (যেমন java.util এবং java.lang) এর সাথে compatibility বা ইন্টারঅ্যাকশন নিশ্চিত করতে কিছু নির্দিষ্ট পদ্ধতি ও কৌশল ব্যবহার করা হয়।
এখানে java.math এর BigInteger এবং BigDecimal ক্লাসের অন্যান্য Java প্যাকেজের সাথে compatibility এবং সাধারণ interoperability সম্পর্কে আলোচনা করা হবে, বিশেষত java.util এবং java.lang প্যাকেজের সাথে।
1. BigInteger এবং java.util প্যাকেজের Compatibility
java.util প্যাকেজটি Java-তে বিভিন্ন উপকারী ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে, যেমন ArrayList, HashMap, এবং Collections। BigInteger ক্লাসের সাথে কিছু সাধারণ কাজ যেমন লিস্টে স্টোর করা, ম্যাপের কী হিসেবে ব্যবহার করা বা কন্টেইনারের সাথে এর ইন্টারঅ্যাকশন করা সম্ভব।
উদাহরণ 1: BigInteger কে ArrayList তে স্টোর করা
import java.math.BigInteger;
import java.util.ArrayList;
public class BigIntegerAndArrayList {
public static void main(String[] args) {
// Create BigInteger objects
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("987654321098765432109876543210");
// Create an ArrayList to store BigInteger objects
ArrayList<BigInteger> bigIntegers = new ArrayList<>();
bigIntegers.add(num1);
bigIntegers.add(num2);
// Display the elements in the ArrayList
System.out.println("ArrayList of BigInteger values:");
for (BigInteger bigInt : bigIntegers) {
System.out.println(bigInt);
}
}
}
Output:
ArrayList of BigInteger values:
123456789012345678901234567890
987654321098765432109876543210
ব্যাখ্যা:
BigIntegerঅবজেক্টগুলিArrayListএ স্টোর করা হয়েছে।java.util.ArrayListএকটি সাধারণ কন্টেইনার যা BigInteger ডেটা স্টোর করতে পারে।
উদাহরণ 2: BigInteger কে HashMap তে কী হিসেবে ব্যবহার করা
import java.math.BigInteger;
import java.util.HashMap;
public class BigIntegerAndHashMap {
public static void main(String[] args) {
// Create BigInteger objects
BigInteger key1 = new BigInteger("123");
BigInteger key2 = new BigInteger("456");
// Create a HashMap with BigInteger keys
HashMap<BigInteger, String> map = new HashMap<>();
map.put(key1, "First Key");
map.put(key2, "Second Key");
// Display the HashMap
System.out.println("HashMap with BigInteger keys:");
for (BigInteger key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
Output:
HashMap with BigInteger keys:
123: First Key
456: Second Key
ব্যাখ্যা:
BigIntegerক্লাসের অবজেক্টগুলিHashMapএর কী হিসেবে ব্যবহার করা হয়েছে, যাjava.util.HashMapএর সাথে ইন্টারঅ্যাক্ট করছে।
2. BigDecimal এবং java.util প্যাকেজের Compatibility
BigDecimal ক্লাস এবং java.util প্যাকেজের মধ্যে BigDecimal মানের গণনা, রাউন্ডিং এবং ভিন্ন ভিন্ন ধরণের পদ্ধতি ব্যবহারের জন্য কিছু বিশেষ পদ্ধতি রয়েছে।
উদাহরণ: BigDecimal এর সাথে Collections.sort() ব্যবহার
Collections.sort() মেথডের মাধ্যমে BigDecimal অবজেক্টের একটি লিস্ট সঠিকভাবে সাজানো যায়।
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
public class BigDecimalAndCollections {
public static void main(String[] args) {
// Create BigDecimal objects
BigDecimal num1 = new BigDecimal("123.45");
BigDecimal num2 = new BigDecimal("67.89");
BigDecimal num3 = new BigDecimal("345.67");
// Add BigDecimal objects to an ArrayList
ArrayList<BigDecimal> list = new ArrayList<>();
list.add(num1);
list.add(num2);
list.add(num3);
// Sort the list of BigDecimal numbers
Collections.sort(list);
// Display the sorted list
System.out.println("Sorted list of BigDecimal values:");
for (BigDecimal num : list) {
System.out.println(num);
}
}
}
Output:
Sorted list of BigDecimal values:
67.89
123.45
345.67
ব্যাখ্যা:
BigDecimalঅবজেক্টগুলোArrayListএ স্টোর করা হয়েছে এবং তারপরCollections.sort()মেথড ব্যবহার করেBigDecimalমানগুলো সঠিকভাবে সাজানো হয়েছে।
3. BigInteger এবং java.lang প্যাকেজের Compatibility
BigInteger ক্লাসটি java.lang প্যাকেজের Number ক্লাস থেকে বর্ধিত হওয়ায়, এটি int, long এবং অন্যান্য সংখ্যামূলক ক্লাসের সাথে conversion এবং arithmetic অপারেশন করার জন্য অনেক সহজ।
উদাহরণ 1: BigInteger কে int এ রূপান্তর
import java.math.BigInteger;
public class BigIntegerAndLang {
public static void main(String[] args) {
// Create a BigInteger object
BigInteger bigInteger = new BigInteger("123456789012345678901234567890");
// Convert BigInteger to int (casting)
int intValue = bigInteger.intValue();
System.out.println("BigInteger to int: " + intValue);
}
}
Output:
BigInteger to int: 1410065408
ব্যাখ্যা:
BigInteger.intValue(): এটিBigIntegerকেintটাইপে রূপান্তর করে। যদিও এই রূপান্তরটি কিছুটা সীমাবদ্ধ (কারণBigIntegerঅনেক বড় হতে পারে), তবে এটি ছোট সংখ্যার জন্য উপযুক্ত।
উদাহরণ 2: BigDecimal এবং Double এর মধ্যে রূপান্তর
import java.math.BigDecimal;
public class BigDecimalAndLang {
public static void main(String[] args) {
// Create a BigDecimal object
BigDecimal bigDecimal = new BigDecimal("123.456789");
// Convert BigDecimal to double
double doubleValue = bigDecimal.doubleValue();
System.out.println("BigDecimal to double: " + doubleValue);
}
}
Output:
BigDecimal to double: 123.456789
ব্যাখ্যা:
BigDecimal.doubleValue(): এটিBigDecimalকেdoubleটাইপে রূপান্তর করে। তবে এটি সঠিক দশমিক স্থান রক্ষা করতে পারে না, তাই বড় নির্ভুলতার প্রয়োজন হলেBigDecimalএর সাথে কাজ করা ভালো।
BigIntegerএবংBigDecimalএর সাথেjava.utilপ্যাকেজের কন্টেইনার যেমনArrayList,HashMapএবংCollectionsকাজ করা সম্ভব এবং সেগুলি সহজেইBigIntegerএবংBigDecimalস্টোর এবং প্রক্রিয়া করতে পারে।BigIntegerএবংBigDecimalএর মানjava.langপ্যাকেজেরint,long, এবংdoubleটাইপের সাথে রূপান্তর এবং গাণিতিক অপারেশন করতে সহজভাবে ব্যবহৃত হয়।BigDecimalএবংBigIntegerএর রূপান্তরের সময় সঠিকতার দিকে মনোযোগ দেওয়া উচিত, বিশেষত যখন আপনি বড় সংখ্যার গাণিতিক কাজ করছেন।