2017-08-28 6 views
0

Rで行うことができるように、ArrayListから要素を簡潔に選択したいとします。たとえば、RIでは、インデックス列の値が1500より大きく、Rデータフレーム行選択のタイプ(ただしJava 8の場合)ArrayList

ndf = df[df$index>1500,] 

Java 8では、ArrayListと同等の処理を行いたいと思います。私が思いつくことができる最も簡潔な方法は次のとおりです。

List<IndexCount> signficantRowIndexList = new ArrayList<>(); 
<the list gets loaded with some objects> 

List<IndexCount> selectedList = new ArrayList<>(); 

signficantRowIndexList.stream() 
     .filter((ic)->ic.index > 1500) 
     .forEach((ic)->selectedList.add(ic)); 

これは最も簡潔な方法ですか?

答えて

0

ストリームを収集してListにする必要があります。サイドノートとして

List<IndexCount> selectedList = signficantRowIndexList.stream() 
     .filter(ic-> ic.index > 1500) 
     .collect(Collectors.toList()); 

、括弧を必要としていないあなたは、ラムダパラメータとして引数を1つしか持っている場合:あなたは、現在のストリームから新しいListを作成したいとcollect()を使用
は、あなたのケースでは、より自然なようです。

関連する問題