以下のコードのパフォーマンスを向上させる方法、コードのパフォーマンスを向上させるためのヒントを提供してください。CopyOnWriteList を使用する正しい方法です。
コード:
public static List<TestVO> description(final TestVO desc) {
List<TestVO> descList = new CopyOnWriteArrayList<TestVO>();
final StringBuilder builder = new StringBuilder();
String add = "";
TestVO desc =null;
for (int i = 0; i < 2; i++) {
desc = new TestVO();
for (String key : audit.getLog().keySet()) {
if (!key.equals("hello")) {
builder.append(key + "=" + audit.getLog().get(key)
+ add);
add = ", ";
audit.getLog().remove(key);
} else {
desc.setDesc(key + " = "
+ audit.getLog().get(key));
descList.add(desc);
audit.getLog().remove(key);
break;
}
}
}
desc.setDesc("Checks : " + builder.toString());
descList.add(desc);
return descList;
}
メインメソッドからの呼び出し:
TestVO a1=new TestVO();
a1.getLog().put("1", new BigDecimal(12));
a1.getLog().put("2", new BigDecimal(22));
a1.getLog().put("3", new BigDecimal(32));
a1.getLog().put("4", new BigDecimal(42));
a1.getLog().put("Hello", new BigDecimal(90));
description(a1);
TestVO には 2 つのメソッドがあります。1 つは log で、そのタイプは HashMap で、もう 1 つは desc で、そのタイプは string です。