R42日記スマートフォン用の表示で見るR42日記この日記は私的なものであり所属会社の見解とは無関係です。takahashikznITmediaに寄稿しました。Webサービス好評頂いています→[クラウド帳票エンジンDocurain]2014-06-23caseがStringなswitch文はmapで実装されている?Javahttp://java-performance.info/string-switch-performance/こちらより。String.equals/equalsIgnoreCase.まとめJava7では、Stringのswitch文は固定サイズのmapで実装されている。スロットの数はおよそ20くらいなので、大抵の状況ではパフォーマンスに関して敏感になる必要はない。caseが100以下ならば、Mapを使って自前でswitch文的なことを実現するより速い。case文の文字列の長さが全て異なるか、同じ長さのcase文字列があったとしてもかなり少ない場合で、かつ全体としてcaseの数自体がそれほど多くない場合は、String.equals/equalsIgnoreCaseを使ったほうが速い。これは、String.equals/equalsIgnoreCaseの実装が「まず最初に文字列長をチェックする」という最適化を使っている事による。