しばらくのようなものは、Javaの各ループはありますか?
-
21-08-2019 - |
質問
このようなことがあった場合、私はの線に沿って何かする構文を想像
while(Integer item : group<Integer>; item > 5)
{
//do something
}
このようなものか、これを模倣する方法があった場合だけ不思議?
解決
いいえ、最も近いは以下のようになります:
for (Integer item : group<Integer>)
{
if (item <= 5)
{
break;
}
//do something
}
Javaは、これまで簡潔クロージャを取得する場合もちろん、.NETの<のhref = "http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhileような何かを書くために合理的です.aspxの」REL = 『nofollowをnoreferrer』>反復可能(この場合はEnumerable.TakeWhile
)をラップし、状態が保持停止した場合には早期に終えるようにするgroup
の方法。
これは今でももちろんなんとかだが、それを行うためのコードが醜いだろう。参考のため、C#は次のようになります:
foreach (int item in group.TakeWhile(x => x > 5))
{
// do something
}
たぶん、Javaは素敵な閉鎖にいくつかの時間を取得します...
他のヒント
for(Integer item : group<Integer>)
{
if (item <= 5)
break;
//do something
}
これは私が考えることができるものです。
参考までに、Javaでジョンスキートの二答えは現在、いくつかのinterface Predicate
ために、次のようになります。
for (int item : takeWhile(group, new Predicate<Integer>() {
public boolean contains(Integer x) {
return x > 5;
}
}) {
// do something
}
これは、ないセマンティクスを吸う構文です。
のJava while
では、条件に基づいています。あなたが探していることはforeach
構築物である。
はそのような事は同様ながら、各Javaではありませんが、我々はとても素晴らしいである - 各用に持っています。
所属していません StackOverflow