Java ကျူတိုရီရယ်များ

Java ပင်မစာမျက်နှာ Java မိတ်ဆက် Java စတင်လိုက်ပါ။ Java Syntax Java မှတ်ချက်များ Java Variables များ Java Data အမျိုးအစားများ Java အမျိုးအစား Casting Java Operator များ Java စာတန်းများ Java သင်္ချာ Java Booleans Java ဆိုလျှင်... အခြား Java Switch Java while Loop Java For Loop Java Break/Continue Java Arrays

Java နည်းလမ်းများ

Java နည်းလမ်းများ Java Method ကန့်သတ်ချက်များ Java Method လွန်ကဲခြင်း။ Java နယ်ပယ် Java Recursion

Java အတန်းများ

Java OOP Java အတန်းများ/အရာဝတ္ထုများ Java Class Attribute များ Java Class Methods Java တည်ဆောက်သူများ Java ပြုပြင်မွမ်းမံမှုများ Java Encapsulation Java Packages / API Java အမွေအနှစ် Java Polymorphism Java အတွင်းပိုင်းအတန်းများ Java Abstraction Java Interface Java စာရင်းများ Java အသုံးပြုသူ ထည့်သွင်းမှု Java နေ့စွဲ Java ArrayList Java LinkedList Java HashMap Java HashSet Java Iterator Java Wrapper အတန်းများ Java ခြွင်းချက်များ Java RegEx Java Threads Java Lambda

Java ဖိုင်ကို ကိုင်တွယ်ခြင်း။

Java ဖိုင်များ Java ဖိုင်များကို ဖန်တီး/ရေးပါ။ Java ဖိုင်များကိုဖတ်ပါ။ Java ဖိုင်များကိုဖျက်ပါ။

Java လုပ်နည်း

နံပါတ်နှစ်ခုထည့်ပါ။

Java အကိုးအကား

Java သော့ချက်စာလုံးများ Java စာတန်းနည်းလမ်းများ Java သင်္ချာနည်းလမ်းများ

Java ဥပမာများ

Java ဥပမာများ Java Compiler Java လေ့ကျင့်ခန်းများ Java Quiz Java လက်မှတ်


Java Lambda အသုံးအနှုန်းများ


Java Lambda အသုံးအနှုန်းများ

Lambda Expressions ကို Java 8 တွင် ထည့်သွင်းထားသည်။

lambda expression သည် parameters များကိုယူကာ တန်ဖိုးတစ်ခုပြန်ပေးသည့် ကုဒ်တိုတိုတစ်ခုဖြစ်သည်။ Lambda အသုံးအနှုန်းများသည် နည်းလမ်းများနှင့် ဆင်တူသော်လည်း ၎င်းတို့သည် အမည်တစ်ခု မလိုအပ်ဘဲ ၎င်းတို့ကို နည်းလမ်းတစ်ခု၏ ခန္ဓာကိုယ်တွင် မှန်ကန်စွာ အကောင်အထည်ဖော်နိုင်သည်။


အထားအသို

အရိုးရှင်းဆုံး lambda expression တွင် parameter တစ်ခုနှင့် expression တစ်ခုပါရှိသည်-

parameter -> expression

ကန့်သတ်ဘောင်တစ်ခုထက်ပို၍ အသုံးပြုရန် ၎င်းတို့ကို ကွင်းစဥ်များဖြင့် ခြုံပါ-

(parameter1, parameter2) -> expression

အသုံးအနှုန်းများသည် အကန့်အသတ်ရှိသည်။ ၎င်းတို့သည် တန်ဖိုးတစ်ခုကို ချက်ချင်းပြန်ပေးရမည်ဖြစ်ပြီး ၎င်းတို့တွင် ကိန်းရှင်များ၊ တာဝန်များ သို့မဟုတ် ထုတ်ပြန်ချက်များကဲ့သို့သော ifသို့မဟုတ် for. ပိုမိုရှုပ်ထွေးသော လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန်အတွက်၊ ကုဒ်ဘလောက်တစ်ခုကို curly braces များဖြင့် အသုံးပြုနိုင်သည်။ lambda expression သည် တန်ဖိုးတစ်ခု ပြန်ရရန် လိုအပ်ပါက၊ code block တွင် returnဖော်ပြချက်တစ်ခု ရှိသင့်သည်။

(parameter1, parameter2) -> { code block }

Lambda Expressions ကိုအသုံးပြုခြင်း။

Lambda အသုံးအနှုန်းများကို အများအားဖြင့် လုပ်ဆောင်ချက်တစ်ခုသို့ ကန့်သတ်ချက်များအဖြစ် ပေးပို့သည်-

ဥပမာ

စာရင်းထဲရှိ အရာတိုင်းကို ပရင့်ထုတ်ရန် ArrayList's method ရှိ lamba expression ကို သုံး ပါ-forEach()

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

variable ၏ အမျိုးအစားသည် နည်းလမ်းတစ်ခုသာရှိသော interface တစ်ခုဖြစ်ပါက Lambda expression များကို variable များတွင် သိမ်းဆည်းထားနိုင်သည်။ lambda ဖော်ပြချက်တွင် တူညီသော ကန့်သတ်နံပါတ်များနှင့် ထိုနည်းလမ်းကဲ့သို့ တူညီသော return type ရှိသင့်သည်။ Java တွင် စာရင်းများအသုံးပြုသော အင်တာဖေ့စ် Consumer(ပက်ကေ့ခ်ျတွင်တွေ့ရှိရသည် ) ကဲ့သို့သော ဤအင်တာဖေ့စ်အမျိုးအစားများစွာတွင် ထည့်သွင်းထားသည်။java.util

ဥပမာ

Consumerပြောင်းလဲမှုတစ်ခုတွင် lambda စကားရပ်ကို သိမ်းဆည်းရန် Java ၏ အင်တာဖေ့စ်ကို အသုံးပြုပါ။

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

နည်းလမ်းတစ်ခုတွင် lambda စကားရပ်ကို အသုံးပြုရန်၊ နည်းလမ်းသည် ၎င်း၏အမျိုးအစားအဖြစ် single-method interface ပါရာမီတာတစ်ခု ရှိသင့်သည်။ အင်တာဖေ့စ်၏နည်းလမ်းကိုခေါ်ဆိုခြင်းသည် lambda စကားရပ်ကို လုပ်ဆောင်လိမ့်မည်-

ဥပမာ

lambda expression ကို ကန့်သတ်ချက်တစ်ခုအဖြစ် ယူသည့် နည်းလမ်းတစ်ခုကို ဖန်တီးပါ-

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}