[AVA 8]Java 8 APIの基本方法&静的方法


今日はjava 8 APIでよく使われる基本的な方法/静的な方法について説明します.

1.Iterable基本方法


forEach()


forEachは、いくつかのオブジェクトを処理するために反復可能なオブジェクトを巡回します.
forEachのparam形式は,前に学習した関数式インタフェースの1つであるConsumerである.
Iterable Objectの代表的なものはListであるため,これを例にコードを記述する.
List<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("c");
list.add("d");

// case 1
list.forEach(s -> System.out.println(s));

// case 2
list.forEach(System.out::println);
以下に示すように記述し、a、b、c、dが順次出力されると判定することができる.
他にもspliterator()などいろいろな方法がありますので探した方がいいです.

2.Collectionの基本方法


stream()


ストリームは「データストリーム」であり、ラムダ式を利用できる技術の一つでもある.
通常、単独ではなく、追加の条件関数とともに使用されます.
例で確認してみましょう.
List<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("ac");
list.add("d");

long count = list.stream().map(String::toUpperCase)
.filter(s->s.startsWith("A"))
.count();

System.out.println(count);
上記の例の説明は次のとおりです.
1.リストオブジェクトをstream()でStreamに変換します.
2.map()でStream要素を大文字に変換します.
3.filter()でAで始まる文字列のみ抽出します.
4.count()を使用して、残りの文字列の数を長い形式で返します.

removeIf(Predicate<T> p)


removeIfの役割は、Predicateのbody条件に対応する部分のみを返すことである.
List<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("ac");
list.add("d");

list.removeIf(s-> s=="a");
list.forEach(s->{System.out.println(s);});	// b, ac, d
上記の例の説明は次のとおりです.
1.リストに対応する要素のうち、「a」以外はリストを再編成する.
2.再構成リストをforEach()で出力します.
Collectionにもいくつかの基本的な方法がありますが、最も一般的な方法は2つの例しかありません.