私はGuavaからJava 8 Streamsに移行しようとしていますが、iterablesの処理方法を理解することはできません。ここに私のコードは、反復可能で、空の文字列を削除するには、次のとおりです。Iterables.filter()をStreamsに置き換えるにはどうすればいいですか?
Iterable<String> list = Iterables.filter(
raw, // it's Iterable<String>
new Predicate<String>() {
@Override
public boolean apply(String text) {
return !text.isEmpty();
}
}
);
注意を払う、それがIterable
、ないCollection
です。それは、潜在的に無制限のアイテムの量を含む可能性があります、私はすべてをメモリに読み込むことはできません。私のJava 8の代替案は何ですか?
ところで、ラムダでこのコードはさらに短くなります
Iterable<String> list = Iterables.filter(
raw, item -> !item.isEmpty()
);
'raw'は何種類? – shmosel
どのバージョンのGuavaをお使いですか?または、Guavaをまったく使用したくないですか? – shmosel
@shmosel私はGuavaを取り除き、Java 8 Streamsに移行したいと思っています。多分それはないでしょう。それがここで尋ねる理由です。 – yegor256