私はコレクションを持っており、少なくとも1つの要素がいくつかの条件を満たすかどうかを知りたいと思います。基本的に、someはJavaScriptで何をするのですか、私はコレクションをしたいと思います!JavaのJavascriptの「some」メソッドに相当するJavaはありますか?
答えて
GuavaのIterables
クラスとそのany()
実装をチェックしてください。
多かれ少なかれコモンズコレクションの例と同じもので、他の答えではなく、genericized:このメソッドをサポートする
List<String> strings = Arrays.asList("ohai", "wat", "fuuuu", "kthxbai");
boolean well = Iterables.any(strings, new Predicate<String>() {
@Override public boolean apply(@Nullable String s) {
return s.equalsIgnoreCase("fuuuu");
}
});
System.out.printf("Do any match? %s%n", well ? "Yep" : "Nope");
Javaには、この機能が組み込まれていません。 Javascript's some()
は、関数ポインタを引数として受け取ります。これは、Javaでネイティブにサポートされているものではありません。しかし、ループを使用してJavaでsome()
の機能をエミュレートするのはかなり単純明快で、コールバック機能のためにはインターフェースが必要です。
あなたは、Apache commons-collectionsからCollectionUtils
を使用することができます。
even
は述語である
List<Integer> primes = Arrays.asList(3, 5, 7, 11, 13)
CollectionUtils.exists(primes, even); //false
:
Predicate even = new Predicate() {
public boolean evaluate(Object object) {
return ((Integer)object) % 2 == 0;
}
}
またはインラインバージョンで:
List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13)
CollectionUtils.exists(primes, new Predicate() {
public boolean evaluate(Object object) {
return ((Integer)object) % 2 == 0;
}
});
はい、それはです ugly for two理由:
- Javaは、(まだ)Single-Abstract-Methodインターフェイスでエミュレートされているファーストクラスの市民としての機能をサポートしていません。
commons-collections
は、ジェネリックをサポートしていません。
あなたが書くことができScalaのような近代的なJVM言語の一方:
List(3,5,7,11,13,17).exists(_ % 2 == 0)
別のサードパーティのライブラリがGoogleのグアバで、それは 'Iterables.any([あり) '](http://guava-libraries.googlecode.com/svn/tags/release08/javadoc/com/google/common/collect/Iterables.html)。 – axtavt
そして、Guavaはジェネリックをサポートしています。 ;) –
Java 8にはlambdaがあります。また、SAMクラスは現在、機能インタフェースと呼ばれています。 –
- 1. JavaメソッドgetGlyphOutlineのC#に相当するものはありますか?
- 2. JavaのBlockingQueue.drainTo(Collection)メソッドに相当するC#はありますか?
- 3. Java用ソースアウトライナーに相当するものはありますか?
- 4. Pythonのschedモジュールに相当するJavaはありますか?
- 5. JavaのFile.separatorに相当するC#はありますか
- 6. TwitterのOstrichライブラリに相当するJavaはありますか?
- 7. OpenSSLのbn_rand_rangeに相当するJavaはありますか?
- 8. SpalaのJava APIでScala someとnoneに相当する
- 9. .NETのPredicate <T>メソッドに相当するJava 1.5がありますか?
- 10. unputcに相当するJavaはありますか?
- 11. excel vlookupに相当するJavaはありますか?
- 12. getcharに相当するJavaはありますか?
- 13. Objective-CのstringWithUTF8Stringに相当するJavaがありますか?
- 14. JavaにTweenMax相当のものがありますか?
- 15. Java Spring Reactorに相当するRxJavaComputationExpressionsがありますか?
- 16. Javascript toFixed相当のJavaで
- 17. Javaにepoll相当版はありますか?
- 18. JavaScriptはGuavaのHashCodeに相当しますか? Javaでは
- 19. UnityのInput.GetKeyDownに相当するJavaがあります。
- 20. JavaのC++からgetch()に相当するものはありますか?
- 21. Javascriptに相当するJava REGEX
- 22. Javascriptに相当するJava Deflater
- 23. JavaのガラスパネルのAndroidに相当するものはありますか?
- 24. Flash ExternalInterfaceのremoveCallbackに相当するメソッドはありますか?
- 25. VB.NETのSupport.TabLayoutメソッドに相当するVB.NETはありますか?
- 26. PHPのEclipse IDE Javaに相当するものはありますか?
- 27. Java/Androidに#IFと#CONST .NETに相当するものはありますか?
- 28. .Net PixelFormatにはJavaに相当するものがありますか?
- 29. Colander/DictShield for Java/Scalaに相当するものはありますか?
- 30. C#の 'new'修飾子に相当するJavaはありますか?
+1ジェネリックの欠如はコモンズコレクションの大きな欠点です。 –
@ Anony-Mousse Yeah;それはまだ痛みですが、私はまだそれを使用しています:/ –
これは素晴らしい、ありがとう! – Zugwalt