演習課題「toListメソッド を使ってみよう」
現在、コードエリアにあるコードでは、エラーが発生してしまいます。Collectorsクラスの、toListメソッドを用いて、入力された要素を、新しいリストである list に蓄積してください。3つ のHumanクラスのインスタンスを保持するリストが、正しく表示されれば正解となります。
期待する出力値
[Human[kirishima], Human[rokumura], Human[midorikawa]]
演習課題「toCollectionメソッド を使ってみよう」
現在、コードエリアにあるコードでは、エラーが発生してしまいます。Collectorsクラスの、toCollectionメソッドを用いて、Streamの要素を保持するlinkedHashSetに変換してください。3つ のHumanクラスのインスタンスを保持するリストが、正しく表示されれば正解となります。
期待する出力値
[Human[kirishima], Human[rokumura], Human[midorikawa]]
演習課題「joiningメソッド を使ってみよう」
現在、コードエリアにあるコードでは、エラーが発生してしまいます。Collectorsクラスの、joiningメソッドを用いて、Humanクラスのインスタンスから、getNameメソッドで取得した文字列を連結してください。文字列が正しく連結されて表示されれば正解となります。
期待する出力値
kirishimarokumuramidorikawa
演習課題「joiningメソッド を使ってみよう - その2」
Collectorsクラスの、joiningメソッドを用いて、Humanクラスのインスタンスから、getNameメソッドで取得した文字列を連結してあります。区切り文字として,を使用し、連結した文字が[]で囲まれるよう、コードを修正してください。
期待する出力値
[kirishima,rokumura,midorikawa]
演習課題「groupingByメソッド を使ってみよう」
現在、コードエリアにあるコードでは、エラーが発生してしまいます。Collectorsクラスの、groupingByメソッドを用いて、Humanクラスのインスタンスから、getNameメソッドによりグルーピングされるよう、コードを修正してください。
期待する出力値
{rokumura=[Human[rokumura], Human[rokumura]], midorikawa=[Human[midorikawa], Human[midorikawa]], kirishima=[Human[kirishima]]}
#13:Collectorsクラス
このチャプターでは、Collectorsクラスについて学習します。
新・Java入門編33: ストリームAPIについて学習しよう
11: 終端操作(Stream)
https://paiza.jp/works/java/new-primer/java-new-primer-33/102010
新・Java入門編31: クラスについてもっと学習しよう
05: インターフェース(interface)
https://paiza.jp/works/java/new-primer/java-new-primer-31/94004
06: implements
https://paiza.jp/works/java/new-primer/java-new-primer-31/94005
新・Java入門編31: クラスについてもっと学習しよう
10: 匿名クラス(Anonymous Classes)
https://paiza.jp/works/java/new-primer/java-new-primer-31/94009
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
public class Main {
    public static void main(String... args) {
        Stream<A> s =
            Stream.of(
                new A("a"),
                new A("b"),
                new A("c"),
                new A("a"),
                new A("c"));
        Map<String, List<A>> r = s.collect(Collectors.groupingBy(A::getS));
        System.out.println(r);
    }
}
class A {
    private String s;
    A(String s) {
        this.s = s;
    }
    String getS() {
        return this.s;
    }
    @Override
    public String toString() {
        return "A[" + getS() + "]";
    }
}