2つのオブジェクトタイプを持つコレクションがあります。私は2つのタイプのうちの1つを新しいセットにのみ読み込みたいです。 これを行うにはエレガントな方法がありますか?複数のオブジェクトタイプを持つコレクションから特定のタイプの特定のオブジェクトのみを読み取る方法
for(Object obj : yourOldCollection) {
if(obj instanceof SearchedType){
yourNewSet.add(obj);
}
}
2つのオブジェクトタイプを持つコレクションがあります。私は2つのタイプのうちの1つを新しいセットにのみ読み込みたいです。 これを行うにはエレガントな方法がありますか?複数のオブジェクトタイプを持つコレクションから特定のタイプの特定のオブジェクトのみを読み取る方法
for(Object obj : yourOldCollection) {
if(obj instanceof SearchedType){
yourNewSet.add(obj);
}
}
使用するGoogleグァバのフィルタ:
@ M156 Java 8のフィルタ –
に感謝します。これらのラムダ式は最終的にJava 8に到着したようなクールな機能だと思うので、D – M156
同様スレシュには、機能的に完全なコードのここにいくつかの並べ替えが構築されていないと述べました。
Collections2.filter(yourOriginalCollection, new Predicate<Object>() {
public boolean apply(Object obj) {
return obj instanceof TypeYouAreInterestedIn;
}
});
またはJava 8:
Collections2.filter(yourOriginalCollection, (obj) -> obj instanceof TypeYouAreInterestedIn);
あなたは別のマップ '地図<文字列、地図>'にそのマップをラップし、theyr actuallクラスによってオブジェクトを区切ることができます。 –
SomeJavaGuy
org.apache.commons.collections4.Predicateクラスを使用すると、エレガントな方法で処理できます。 –