非常に長いIfElseを使用しているときに、これを行う最善の方法はどれですか?IfElseまたはregex
if (text.contains("text"))
{
// do the thing
}
else if (text.contains("foo"))
{
// do the thing
}
else if (text.contains("bar"))
{
// do the thing
}else ...
それとも
if (text.contains("text") || text.contains("foo") || ...)
{
// do the thing
}
それとも
Pattern pattern = Pattern.compile("(text)|(foo)|(bar)|...");
Matcher matcher = pattern.matcher(text);
if(matcher.find())
{
// do the thing
}
そして私はあなたがこれらの多くをチェックする必要があるときにだけ意味。ありがとう!
私は、セットが内部的にバイナリツリーとして格納されているので、実際はO(log n)だと思います。しかし、HashTableはO(1)の効率を償却しています。 –
javadocから: "このクラスは、ハッシュ関数がバケット間で要素を適切に分散させると仮定して、基本的な操作(追加、削除、包含、およびサイズ)の一定の時間パフォーマンスを提供します" - Stringsの場合に該当します。 – assylias
私の悪いです。私はそれらをC++セットと混同していました。これは "通常バイナリ検索ツリーとして実装されています"です。 –