어리석은 작업을 해결하는 동안, 질문이 내 마음에 온 :블록이 여러 개 있거나 계속되는 경우?
/**
* Find element by key in binary tree.
*/
public E find(K key) {
BinaryTreeNode<K, E> node = this.root;
while (node != null) {
if (node.getKey().compareTo(key) > 0) { //element in tree too big
node = node.getLeft();
} else if (node.getKey().compareTo(key) < 0) { //element in tree too small
node = node.getRight();
} else { //found element
return node.getElement();
}
}
return null;
}
을 while
블록에서 하나의 if
문은 사실이 될 수 있습니다. 그래서 while
블록은 continue
대신 else if
의를 사용하여 작성 될 수있다 :
while (node != null) {
if (node.getKey().compareTo(key) > 0) { //element in tree too big
node = node.getLeft();
continue;
}
if (node.getKey().compareTo(key) < 0) { //element in tree too small
node = node.getRight();
continue;
}
//found element
return node.getElement();
}
두 가지 방법 사이의 성능 차이가 있습니까?
그건 쉽습니다. 빠른 응답 주셔서 감사합니다! – Affe