Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java9のStreamAPIに追加された新機能は何ですか?


Java 9では、OracleCorporationがStreamに4つの便利な新しいメソッドを追加しました。 API 。これらのメソッドはiterate() ofNullable() takeWhile() およびdropWhile(

iterate()

iterate() 従来のforループのストリームバージョンの置き換えとして使用できます 。このメソッドは、別のパラメーター述語を追加することで改善されました。 述語で定義された条件に基づいてこれらの無限の数を停止できるインターフェース インターフェース。

import java.util.stream.Stream;
public class StreamIterateMethodTest {
   public static void main(String[] args) {
      Stream.iterate(1, i -> i < 5, i -> i + 1).forEach(System.out::println); // iterate()
   }
}

出力

1
2
3
4


ofNullable()

ofNullable() メソッドはストリームを返します オブジェクト nullではない場合の要素の 。それ以外の場合は、空のを返します ストリーム。

import java.util.stream.Stream;
public class StreamOfNullableMethodTest {
   public static void main(String[] args) {
      String str = "TutorialsPoint";
      Stream.ofNullable(str).forEach(System.out::println);    // ofNullable() method
   }
}

出力

TutorialsPoint


takeWhile()

takeWhile()に渡されるパラメータ メソッドは述語です インターフェース。このメソッドは、ストリームオブジェクトの要素を左から左から右に取得します。 述語の条件まで オブジェクトはもう実行されていません。

import java.util.stream.Stream;
public class StreamTakeWhileMethodTest {
   public static void main(String[] args) {
      Stream.of(1, 2, 3, 4, 5)
         .takeWhile(i -> i < 5)         // takeWhile() method
         .forEach(System.out::println);
   }
}

出力

1
2
3
4


dropWhile()

dropWhile()に渡されるパラメータ メソッドは述語でもあります インターフェース。 takeWhile()の反対です 方法。このメソッドは、ストリームオブジェクトの各要素を左から右に渡します。 条件を満たすすべての要素を無視します。条件が満たされない場合、残りのすべての要素が返されます。

import java.util.stream.Stream;
public class StreamDropWhileMethodTest {
   public static void main(String[] args) {
      Stream.of(3, 2, 1, 4, 6, 7, 8, 9, 10)
            .dropWhile(i -> i < 5)     // dropWhile() method
            .forEach(System.out::println);
   }
}

出力

6
7
8
9
10

  1. Javaのpaint()メソッドとrepaint()メソッドの違いは何ですか?

    Paint()とRepaint() paint(): このメソッドは、このコンポーネントをペイントするための命令を保持します。 Java Swingでは、paintが paintBorder()を呼び出すときに、paint()メソッドの代わりにpaintComponent()メソッドを変更できます。 paintComponent() およびpaintChildren() メソッド。このメソッドを直接呼び出すことはできません。代わりに、 repaint()を呼び出すことができます。 。 repaint() :このメソッドはオーバーライドできません。 paint()を制御します サイ

  2. JavaのprintStackTrace()メソッドとgetMessage()メソッドの違いは何ですか?

    例外の詳細を見つける方法は2つあります。1つはprintStackTrace()メソッドで、もう1つはgetMessage()メソッドです。 printStackTrace()メソッド これはjava.lang.Throwableクラスで定義されているメソッドであり、java.lang.Errorクラスとjava.lang.Exceptionクラスに継承されます。 このメソッドは、例外の名前、メッセージの性質、および例外が発生した行番号を表示します。 例 public class PrintStackTraceMethod {    public static voi