私は Swing を使用しており、GUI に JTree があります。実行中は、ツリーのノードを解析して、実行するアクションを決定します。ここにスニペットがあります:
// action to modify node
public void modifyMenuItem(DefaultMutableTreeNode node)
{
// if node is node 1 in the tree
if(node.equals(treeNodes.node1))
{
// perform action 1
}
// if node is node 2 in the tree
else if(node.equals(treeNodes.node2))
{
// perform action 2
}
// if node is node 3 in the tree
else if(node.equals(treeNodes.node3))
{
// perform action 3
}
etc.
}
問題は、ツリーに 50 近くのノードがあり、このタイプの実装によってパフォーマンスが大幅に低下しているのではないかと心配していることです。コード全体に同様の if ステートメントがあります。このようなオブジェクトの大きな if ステートメントを処理するための推奨される方法は何ですか? これらは整数値ではないため、明らかに switch ステートメントを使用できません。ハッシュマップを作成してから、ハッシュ キーに基づいてスイッチを使用する必要がありますか?