2017-10-16 1 views
1

通常のJavaコレクションでは、入力がPredicateである要素を削除することができます。 persons.removeIf(person -> person.isMale()); リストのremoveIfを実行するか、Eclipseコレクションのプリミティブを設定しますか?

eclipseコレクションでは、使用されているコレクションがIterable<T>の場合に限りこれが可能です。

PrimitiveIterableを拡張するプリミティブコレクションの場合、同じ方法を提供する方法はないようです。サポートされていませんか?そうでない場合、なぜですか?

編集: 私は、rejectのように、新しいセットを作成せずにその場でアイテムを削除するメソッドを探しています。

+0

Java 8までは、「removeIf」が追加されませんでした... –

+0

*「サポートされていませんか?」* **ドキュメントを読む**。あなたが['MutableIntCollection.reject(IntPredicate predicate)'](http://www.eclipse.org/collections/javadoc/9.0.0/org/eclipse/collections/api/collection/primitive/MutableIntCollection)を探しているようです.html#reject-org.eclipse.collections.api.block.predicate.primitive.IntPredicate-)、またはそのいずれかのいとこです。 http://idownvotedbecau.se/noresearch/ – Andreas

+0

私はドキュメントを見ました。おそらく私の質問は十分にはっきりしていなかった、私は場所に要素を削除するものが欲しい。 '' 'reject'''は、一致しなかった要素を持つ新しいセットを返します。 –

答えて

3

方法removeIfは、今日のEclipseコレクションの可変プリミティブコレクションに対しては存在しません。 2012年8月にリリースされた少なくともversion 2.0以降、変更可能なオブジェクトコレクション上に追加されたので、追加するのは意味があります。これはデフォルトの方法として追加することができますので、9.1リリースで利用できるはずです。

+0

これに対するプルリクエストがマージされているため、次のリリースになります:https://github.com/eclipse/eclipse-collections/pull/377 –

関連する問題