Lambda Expressions এর বেসিক উদাহরণ (Runnable, Comparator)

Lambda Expressions - জাভা ফাংশনাল প্রোগ্রামিং (Java Functional Programming) - Java Technologies

260

Java Functional Programming হল এমন একটি ধারণা যেখানে ফাংশন বা মেথডগুলি প্রথম শ্রেণির নাগরিক হিসেবে বিবেচিত হয় এবং ফাংশনগুলোকে মান হিসেবে পাস করা হয়। Java 8 থেকে Lambda Expressions চালু হওয়ার মাধ্যমে Java-তে Functional Programming এর ধারণা ব্যাপকভাবে জনপ্রিয় হয়েছে।

Lambda Expressions এমন একটি কোড রাইটিং স্টাইল যা সাধারণত Functional Interfaces এর সঙ্গে ব্যবহার করা হয়। Lambda Expressions সহজভাবে কম্প্যাক্ট এবং বোঝার সুবিধাজনক কোড লেখার জন্য ব্যবহৃত হয়, যা আগে anonymous classes এর মাধ্যমে করা হত।

এখানে আমরা দুটি জনপ্রিয় উদাহরণ দেখবো, Runnable এবং Comparator, যা Lambda Expressions এর মাধ্যমে বাস্তবায়িত করা হয়েছে।

1. Runnable Example using Lambda Expression

Runnable একটি functional interface যা একটি run() মেথডকে ডিফাইন করে। এই ইন্টারফেসের lambda expression ব্যবহার করে আপনি কার্যকরভাবে থ্রেড তৈরি করতে পারেন।

Runnable Interface Example:

public class RunnableLambdaExample {
    public static void main(String[] args) {
        // Using Lambda expression with Runnable
        Runnable task = () -> {
            System.out.println("Thread is running using Lambda Expression!");
        };

        // Creating a new Thread and passing the Runnable task
        Thread thread = new Thread(task);
        thread.start();  // Starts the thread
    }
}

ব্যাখ্যা:

  • এখানে, Runnable ইন্টারফেসের run() মেথড একটি lambda expression ব্যবহার করে বাস্তবায়িত করা হয়েছে: () -> { System.out.println("Thread is running!"); }
  • Thread ক্লাসে এটি একটি Runnable পাস করা হয়েছে এবং থ্রেডটি চালানো হয়েছে।

2. Comparator Example using Lambda Expression

Comparator একটি functional interface যা দুটি অবজেক্ট তুলনা করার জন্য ব্যবহৃত হয়। এখানে, আমরা Comparator ইন্টারফেসের মাধ্যমে একটি লিস্টে অবজেক্ট সাজানোর জন্য lambda expression ব্যবহার করবো।

Comparator Interface Example:

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

public class ComparatorLambdaExample {
    public static void main(String[] args) {
        // Creating a list of Strings
        List<String> names = Arrays.asList("John", "Alice", "Bob", "Charlie");

        // Sorting using Lambda expression
        names.sort((name1, name2) -> name1.compareTo(name2));  // Ascending order

        // Printing the sorted list
        System.out.println("Sorted names: " + names);
    }
}

ব্যাখ্যা:

  • Comparator ইন্টারফেসের compare() মেথড এখানে lambda expression name1.compareTo(name2) এর মাধ্যমে বাস্তবায়িত করা হয়েছে।
  • names.sort() মেথড ব্যবহার করে আমরা String লিস্টটিকে ascending order-এ সাজিয়েছি।

Custom Comparator Example (Descending Order):

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

public class ComparatorLambdaDescending {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Alice", "Bob", "Charlie");

        // Sorting in descending order using Lambda expression
        names.sort((name1, name2) -> name2.compareTo(name1));  // Descending order

        System.out.println("Sorted names in descending order: " + names);
    }
}

ব্যাখ্যা:

  • এখানে আমরা Comparator-এর lambda expression ব্যবহার করে লিস্টটিকে descending order-এ সাজিয়েছি।

3. Key Takeaways from Lambda Expressions with Runnable and Comparator

  • Runnable Example: Lambda expressions সিম্পল ও কম্প্যাক্টভাবে থ্রেড তৈরি করতে সহায়ক। এটি anonymous class এর পরিবর্তে ব্যবহৃত হয় এবং একটি সিঙ্গেল মেথড run() এর কার্যক্রম নির্ধারণ করে।
  • Comparator Example: Comparator ইন্টারফেসের মাধ্যমে সজ্জা বা ডেটা পরিসংখ্যানের জন্য Lambda expressions ব্যবহার করা যায়, যা comparison লজিক লিখতে খুবই সহজ এবং বোঝা সহজ হয়।

4. Advantages of Using Lambda Expressions

  1. Compact Code: Lambda expressions ছোট এবং পরিষ্কার কোড লিখতে সহায়ক।
  2. Improved Readability: কোডের বোঝার সুবিধা বৃদ্ধি পায়, বিশেষত functional interfaces ব্যবহার করার ক্ষেত্রে।
  3. Functional Style: Java-তে functional programming এর ধারণা আনার জন্য গুরুত্বপূর্ণ।
  4. Enhances the Power of Streams API: Lambda expressions Streams API এর সঙ্গেও খুব ভালভাবে কাজ করে।

Lambda Expressions Java 8 এ একটি শক্তিশালী বৈশিষ্ট্য হয়ে উঠেছে যা কোডের মান উন্নত করতে এবং সহজে লেখা যায় এমন functional interfaces তৈরি করতে সহায়ক। এখানে Runnable এবং Comparator ইন্টারফেসের মাধ্যমে lambda expressions ব্যবহারের উদাহরণ দেখানো হয়েছে, যা কোড কম্প্যাক্ট এবং সহজবোধ্য করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...