매우 긴 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에서 : "이 클래스는 기본 연산 (추가, 제거, 포함 및 크기)에 대해 일정 시간 성능을 제공합니다. 해시 함수가 버킷간에 요소를 적절하게 분산 시킨다고 가정합니다."- 문자열의 경우이어야합니다. – assylias
제 잘못입니다. 나는 이들을 "바이너리 검색 트리로 일반적으로 구현되는"C++ 세트와 혼동했다. –