Java SE 8でのラムダ式とストリームを利用する新しいAPIと拡張API

Java SE 8では、ラムダ式とストリームを利用するために、新しいクラスが追加され、既存のクラスが拡張されました。これについては、Javaチュートリアルの集計操作に関するレッスンに説明されています。これらの新しいクラスと拡張されたクラスのほとんどは、次のパッケージに入っています。

既存のクラスへの多数の追加でストリームが利用されています。その他に、関数型インタフェースのインスタンスを受け入れるメソッドも追加されており、ラムダ式やメソッド参照を使用して呼び出すことができます。

新しいパッケージ

java.util.function
java.util.stream

変更されたパッケージ

BooleanIntegerなどのクラスおよびその他のプリミティブ型用のオブジェクト・ラッパー・クラス(AutoboxingとUnboxingに関するトピックを参照)がここに一覧表示されています。それらのクラスが拡張されて、メソッド参照のターゲットに適したメソッドが追加されたためです。たとえば、リストに含まれている整数を追加する次の例で示しているように、Integer.sumメソッドをメソッド参照として使用できます。

Integer[] intArray = {1, 2, 3, 4, 5, 6, 7, 8 };
List<Integer> listOfIntegers =
    new ArrayList<>(Arrays.asList(intArray));
    System.out.println("Sum of integers: " +
        listOfIntegers
            .stream()
            .reduce(Integer::sum).get());

(IntStream.sumメソッドを使用してもストリームに含まれている整数を追加できることに注意してください。)

パッケージ 新しいクラス 変更されたクラス
java.io UncheckedIOException
BufferedReader

java.lang

なし AutoCloseable
ThreadLocal
String
Iterable
CharSequence
Boolean
Integer
Long
Float
Double
java.nio.file なし Files
java.util PrimitiveIterator
Spliterator
DoubleSummaryStatistics
IntSummaryStatistics
LongSummaryStatistics
Optional
OptionalDouble
OptionalInt
OptionalLong
Spliterators
SplittableRandom
StringJoiner
Arrays
BitSet
Collection
Comparator
Iterator
List
Map
Map.Entry
LinkedHashMap
Random
TreeMap
java.util.concurrent なし ThreadLocalRandom
java.util.jar なし JarFile
java.util.zip なし ZipFile
java.util.logging なし Logger
java.util.regex なし Pattern

Copyright © 1993, 2019, Oracle and/or its affiliates. All rights reserved.