Java 14 এর Record ব্যবহার করে Tuple তৈরি করা

Tuples এবং Java Record Integration (Java 14+) - জাভা টাপল (Java Tuples) - Java Technologies

392

Java Records (Java 14 এ প্রবর্তিত) হলো এমন একটি ফিচার যা Immutable Data Classes তৈরি করতে সাহায্য করে। এটি ছোট এবং সহজ ডেটা-ক্যারিয়ার ক্লাস তৈরি করার জন্য ব্যবহার করা হয়। Tuples এর মতো, Records বিভিন্ন ডেটা টাইপ একত্রে সংরক্ষণ করতে পারে। তবে Records আরও বেশি সুবিধা প্রদান করে যেমন: Named Fields এবং Type Safety


Java Records এবং Tuples এর মধ্যে পার্থক্য

বিষয়TupleRecord
প্রচলিত ধারাJava এ নেই, লাইব্রেরি বা Custom ক্লাস ব্যবহার করতে হয়।Java 14 এবং পরবর্তী সংস্করণে সমর্থিত।
Field Namesসাধারণত _1, _2 এর মতো ডেটা অ্যাক্সেস করা হয়।নামসহ ডেটা ফিল্ড থাকে (e.g., name, age)।
Readabilityকম পড়ার যোগ্য, বিশেষ করে Nested Tuples।আরও বেশি পড়ার যোগ্য।
Type SafetyGenerics দিয়ে Type Safety নিশ্চিত করা হয়।Built-in Type Safety।
UsageLightweight এবং সাধারণ ডেটা পাসিং এর জন্য।Data-Centric Class Design এর জন্য।

Java Record দিয়ে Tuple তৈরি করা

১. Record দিয়ে Simple Tuple তৈরি

কোড উদাহরণ:

public record Tuple<T1, T2>(T1 first, T2 second) {}

ব্যবহার:

public class RecordTupleExample {
    public static void main(String[] args) {
        // String এবং Integer মান সংরক্ষণ
        Tuple<String, Integer> person = new Tuple<>("Alice", 25);

        // ডেটা অ্যাক্সেস
        System.out.println("Name: " + person.first());
        System.out.println("Age: " + person.second());
    }
}

আউটপুট:

Name: Alice
Age: 25

২. Record দিয়ে Nested Tuple তৈরি

Record Definition:

public record Tuple3<T1, T2, T3>(T1 first, T2 second, T3 third) {}

ব্যবহার:

public class NestedRecordTupleExample {
    public static void main(String[] args) {
        // Nested Record তৈরি
        Tuple3<String, Integer, Tuple<String, Double>> employee =
                new Tuple3<>("Bob", 30, new Tuple<>("Manager", 75000.0));

        // Nested Data Access
        System.out.println("Name: " + employee.first());
        System.out.println("Age: " + employee.second());
        System.out.println("Role: " + employee.third().first());
        System.out.println("Salary: $" + employee.third().second());
    }
}

আউটপুট:

Name: Bob
Age: 30
Role: Manager
Salary: $75000.0

Records ব্যবহার করে Tuples এর সুবিধা

  1. Named Fields:
    • ডেটা অ্যাক্সেসে _1, _2 এর পরিবর্তে name, age এর মতো নাম ব্যবহার করা যায়।
  2. Immutability:
    • Records Immutable হওয়ায় মাল্টিথ্রেডিংয়ে ডেটা সুরক্ষিত থাকে।
  3. Built-in Features:
    • equals(), hashCode(), এবং toString() মেথড স্বয়ংক্রিয়ভাবে তৈরি হয়।
  4. Type Safety:
    • ডেটা টাইপ কম্পাইল টাইমে যাচাই করা হয়।
  5. Readable Code:
    • Record ব্যবহার করলে কোড আরো সহজবোধ্য এবং বোধগম্য হয়।

Records ব্যবহার করে Practical উদাহরণ

১. Data Deduplication

import java.util.HashSet;
import java.util.Set;

public record Employee(String name, int age, String department) {}

public class DeduplicationExample {
    public static void main(String[] args) {
        // Employee Records
        Employee emp1 = new Employee("Alice", 25, "HR");
        Employee emp2 = new Employee("Bob", 30, "IT");
        Employee emp3 = new Employee("Alice", 25, "HR"); // Duplicate

        // Deduplication using Set
        Set<Employee> employees = new HashSet<>();
        employees.add(emp1);
        employees.add(emp2);
        employees.add(emp3);

        // Unique Employees
        employees.forEach(System.out::println);
    }
}

আউটপুট:

Employee[name=Alice, age=25, department=HR]
Employee[name=Bob, age=30, department=IT]

২. Lookup Table with Records

import java.util.HashMap;
import java.util.Map;

public record Product(String name, double price, int stock) {}

public class RecordLookupExample {
    public static void main(String[] args) {
        // Create a Lookup Table
        Map<String, Product> productTable = new HashMap<>();
        productTable.put("Laptop", new Product("Laptop", 999.99, 10));
        productTable.put("Smartphone", new Product("Smartphone", 499.99, 20));

        // Lookup a Product
        String productName = "Laptop";
        Product product = productTable.get(productName);
        if (product != null) {
            System.out.println("Name: " + product.name());
            System.out.println("Price: $" + product.price());
            System.out.println("Stock: " + product.stock());
        } else {
            System.out.println("Product not found.");
        }
    }
}

আউটপুট:

Name: Laptop
Price: $999.99
Stock: 10

Java Records এবং Tuples এর মধ্যে গুরুত্বপূর্ণ পার্থক্য:

  • Tuples: Lightweight, নামবিহীন ডেটা সংরক্ষণের জন্য উপযুক্ত।
  • Records: Named fields, Type-Safe, এবং Immutable Data Classes তৈরিতে কার্যকর।

কখন কী ব্যবহার করবেন:

  • Tuples: সাময়িক ডেটা সংরক্ষণ এবং মাল্টিপল রিটার্ন ভ্যালু ক্ষেত্রে।
  • Records: জটিল এবং নামযুক্ত ডেটা মডেল তৈরি করার জন্য।

Java 14 এর Records ব্যবহার করে Tuples তৈরি করা আপনার কোডকে আরো নিরাপদ এবং পড়তে সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...