JAVA 8の新機能の使用:Lambda式===略記マルチスレッド
11695 ワード
1:匿名の内部クラスの役割とは何か:クラスのサブクラスオブジェクトのショートカットフォーマットを一時的に作成する:new親/インタフェース(){書き換え方法};
二:コードの例:匿名の内部クラスを使用してスレッドを開く一般的な書き方:
匿名内部クラスの書き方
Lambda式とは:lambda式を使用する前提 Lambdaを使用するには、インタフェースが必要であり、インタフェースに抽象的な方法が1つしかないことが要求される.JDKに内蔵されているRunnable、Comparatorインタフェース、カスタムインタフェースにかかわらず、Lambdaはインタフェース内の抽象的なメソッドが存在し、一意である場合にのみ使用できます. メソッドのパラメータまたはローカル変数タイプは、Lambdaをインタフェースのインスタンスとして使用するには、Lambdaに対応するインタフェースタイプでなければなりません.
//マルチスレッドベース書き方
遍歴:Intstrream.range(a,b).foreach()を利用
結果の一部:
二:コードの例:匿名の内部クラスを使用してスレッドを開く一般的な書き方:
class Runnable1 implements Runnable{
@Override
public void run() {
for(int i = 0 ; i < 10 ;i++){
System.out.println(" "+i);
}
}
}
public class RunnableTest {
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
System.out.println(" "+i);
if(i==5){
Thread th1 = new Thread(new Runnable1());
th1.start();
}
}
}
}
匿名内部クラスの書き方
class RunnableTest {
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
System.out.println(" "+i);
if(i==5){
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0 ; i < 10 ;i++){
System.out.println(" "+i);
}
}
}).start();
}
}
}}
Lambda式とは:lambda式を使用する前提
//マルチスレッドベース書き方
() -> System.out.println(" !")
遍歴:Intstrream.range(a,b).foreach()を利用
class RunnableTest {
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
System.out.println(" "+i);
if(i==5){
IntStream.range(1,5).forEach(a -> System.out.println(a +" "));
}
}
}
}
結果の一部:
3
4
5
1
2
3
4
6
7