gpt4 book ai didi

java - 对象数组列表的高效字符串连接

转载 作者:行者123 更新时间:2023-12-02 02:56:05 25 4
gpt4 key购买 nike

所以我正在使用对象数组列表构建一个 html 表,但它的速度非常慢。有什么办法可以优化吗?

public String generateHtmlTable(List<Object[]> resultSet) {
totalRows = resultSet.size();

StringBuilder sb = new StringBuilder();
sb.append("<table width=\"900px\">");
sb.append("<tr>");
sb.append("<th width=\"10%\" align=\"left\"><b>col1</b></th>");
sb.append("<th width=\"25%\" align=\"left\"><b>col2</b></th>");
sb.append("<th width=\"20%\" align=\"left\"><b>col3</b></th>");
sb.append("<th width=\"15%\" align=\"left\"><b>col4</b></th>");
sb.append("<th width=\"10%\" align=\"left\"><b>col5</b></th>");
sb.append("<th width=\"10%\" align=\"left\"><b>col6</b></th>");
sb.append("<th width=\"10%\" align=\"left\"><b>col7</b></th>");
sb.append("<th width=\"5%\" align=\"left\"><b>col8</b></th>");
sb.append("<th width=\"5%\" align=\"left\"><b>col9</b></th>");
sb.append("</tr>");
for (Object[] row : resultSet) {
sb.append("<tr>");
for (Object cell : row) {
sb.append("<td>");
sb.append(((cell != null) ? cell.toString() : ""));
sb.append("</td>");

}
sb.append("</tr>");
rowsProcessed += 1;
}
sb.append("</table>");
return sb.toString();
}

最佳答案

您正在内存中构建结果 html,然后(大概)将其从某个 Web 服务器的响应中流式传输出来。您可以通过直接写入响应输出流来避免这样的缓冲。这有两个优点:1)在返回响应之前,您不会在内存中创建响应的副本。 2)在滚动浏览数据库中的所有结果之前,您正在返回字节。因此两者都减少了响应时间。

大多数序列化框架都基于例如jax.rs 会为您完成此操作,或者您可以插入自己的自定义序列化。或者,如果您使用某种 servlet 应用程序,则可以直接从响应对象获取编写器。

关于java - 对象数组列表的高效字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43064630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com