私はいくつかのクラスを使用する多くのオブジェクトを持っています(html + cssのような要素の視覚的な分類を意味します)。クラスはコンパイル時には不明であり、条件で何度も使用されます。
パフォーマンスを向上させるために、1つの解決策があります。
public class ElementClass {
private static final Map<String, ElementClass> classes = new HashMap<>();
public final String name;
public final String lowerName;
public ElementClass(String name, String lowerName) {
this.name = name;
this.lowerName = lowerName;
}
public static ElementClass get(String name) {
String lower = name.toLowerCase();
ElementClass c = classes.get(lower);
if (c == null) {
c = new ElementClass(name, lower);
classes.put(lower, c);
}
return c;
}
}
この方法は、変数get
の比較よりも非常に少なく使用されます。ElementClass
これは、構成と一部のstatic
変数の解析に使用されます。私はJavaの初心者なので、これが最善の方法かどうかはわかりません。
使用例ElementClass
:
// contains element styles based on it's class
Map<ElementClass,ElementStyle> styles;
void exampleFunction() {
ElementClass c = ElementClass.get("special");
for( Element e : elements ) {
if( e.cls == c ) doSomethingSpecial();
}
}