0
0

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 1 year has passed since last update.

よく使用したラムダ式

Posted at

今の現場に入るまでラムダ式は使用しないルールの現場ばかりだったのですが、
ラムダ式も使用してよいとのことでちょこちょこ使用しました。

その中でよく使用したラムダ式を備忘録として残そうと思います。

filter

使用方法は以下。

        List<String> colorList = Arrays.asList("Red", "Blue", "White", "Pink", "Yellow");

        List<String> resultList = colorList.stream()
                .filter(e -> (5 <= e.length()))
                .collect(Collectors.toList());

        //[White, Yellow]

if文をなるべく使わないようにしたいときに使用しました。

ラムダ式ってeclipseのフィルターを使うとわかりにくくなってしまうので
↑のように区切るのが好きなのですが、このくらい単純だったら1行にしてしまっても良いのかなと思います。

あとこんな風にしている個所もありました。

        List<String> colorList = Arrays.asList("Red", "Blue", "White", "Pink", "Yellow");

        List<String> resultList = colorList.stream()
                .filter(e -> (ここでif文とReturnを書いている))
                .collect(Collectors.toList());

これだと可読性的にはどうなのかと思いますが、入れ子よりはいいのですかね。好みの問題?

sorted

その名の通りソートしたいときに使用しました。

        List<Item> list = Arrays.asList(
        new Item(9, "apple"), 
        new Item(3, "lemon"), 
        new Item(6, "peach"), 
        new Item(6, "banana"));

        List<Item> sorted = list.stream()
        .sorted(Comparator.comparing(Item::getId))
        .collect(Collectors.toList());

      // [Item{3, 'lemon'}, Item{6, 'peach'}, Item{6, 'banana'}, Item{9, 'apple'}]

Comparator.comparing(ここ)はA::b
A → クラス/オブジェクト
b → 項目
です。

ここが空の場合にどうなるかはこちら参照。
https://amg-solution.jp/blog/26894


一旦ここまで。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?