0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Streamパッケージを初めて使ってみた話。

Posted at

レガシーマンなので、Java8から導入されたというStreamパッケージを生まれて初めて使った。
確かどこかで聞いた説明で「ラムダ式はStremパッケージのおまけ」と話してたのでかろうじて記憶に残ってた。

処理としては、Beanオブジェクトに入ってるフィールド(プロパティ)Aの重複を除外して件数を判定する。

レガシーマンのコード

public class AbcInfo {
    private String id;
    private String name;

    ~ getter & setter 略 ~
}

public class AbcServiceImpl implement AbcService {
    ~ 略 ~

    protected boolean isOneName(List<AbcInfo> abcList) {
        // -------------------------------------------------------
        // nameの文字列が1種類か判定する。
        // -------------------------------------------------------
        // nameのみ抽出する。
        List<String> nameList = new ArrayList<String>();
        for(AbcInfo abc : abcList) {
            nameList.add(abc.getName);
        }
        // nameの重複を排除する
        List<String> list = new ArrayList<String>(new HashSet<>(nameList));
        if(list.size() == 1) {
            return true;
        }

        return false;
    }
}

Streamパッケージ使ったコード

public class AbcInfo {
    private String id;
    private String name;

    ~ getter & setter 略 ~
}

public class AbcServiceImpl implement AbcService {
    ~ 略 ~

    protected boolean isOneName(List<AbcInfo> abcList) {
        // nameの文字列が1種類か判定する。
        long nameCount = abcList.stream()
                .map(info -> info.getName())
                .distinct()
                .count();
        if(nameCount == 1) {
            return true;
        }

        return false;
    }
}

参考:http://kusamakura.hatenablog.com/entry/2016/12/07/Java8_%E3%81%A7%E5%B0%8E%E5%85%A5%E3%81%95%E3%82%8C%E3%81%9F_Stream_%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?