LoginSignup
46
45

More than 5 years have passed since last update.

Androidでリスト操作するなら、Lightweight-Stream-APIが便利

Posted at

↓こちらです。
aNNiMON/Lightweight-Stream-API
https://github.com/aNNiMON/Lightweight-Stream-API

Android(Java7)

Java8から導入されたStream API、Androidでは使うことが出来ません。
なのでこんなコードを書いてしまうことも

java7
// 生徒の中からidが10より大きい生徒の名前のリストを取得
List<String> names = new ArrayList<>();
for (Student student : students) {
   if (student.id > 10) {
      names.add(student.name);
   }
}

RxJava

そんな折、RxJavaでリスト操作を代用することも

RxJava(retrolambda使ってます)
// 生徒の中からidが10より大きい生徒の名前のリストを取得
List<String> names = Observable.from(students)
                     .filter(student -> (student.id > 10))
                     .map(student -> student.name)
                     .toList().toBlocking().single();

for文とif文がなくなっていいかんじ。
でもRxJavaっていろんな機能があるし、リスト操作のためだけに入れるのもなぁ…

Lightweight-Stream-API

Lightweight-Stream-API(retrolambda使ってます)
// 生徒の中からidが10より大きい生徒の名前のリストを取得
List<String> names = Stream.of(students)
                     .filter(student -> (student.id > 10))
                     .map(student -> student.name)
                     .collect(Collectors.toList());

うん、いいかんじ
Java8のStream APIで出来ることもほとんど出来るっぽい

サンプルプロジェクトもあります。
https://github.com/aNNiMON/Android-Java-8-Stream-Example

46
45
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
46
45