↓こちらです。
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