微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 有一个更快的方法然后StringBuilder最多9-10步字符串连接?

我有这个代码来连接一些数组元素:
StringBuilder sb = new StringBuilder();
private RatedMessage joinMessage(int step,boolean isresult) {
        sb.delete(0,sb.length());
        RatedMessage rm;
        for (int i = 0; i <= step; i++) {
            if (mStack[i] == null)
                continue;
            rm = mStack[i].getCurrentMsg();// msg is built upfront,this just returns,it's a getter method call
            if (rm == null || rm.msg.length() == 0)
                continue;
            if (sb.length() != 0) {
                sb.append(",");
            }
            sb.append(rm.msg);
        }
        rm.msg=sb.toString();
        return rm;
    }

重要的是阵列最多可容纳10个项目,所以它并不多.

我的跟踪输出告诉我这个方法被称为18864次,在此方法中花费了16%的运行时间.我可以优化更多吗?

解决方法

一些想法:

1)您是否使用估计的最大容量初始化StringBuilder?这可以节省内部阵列重新分配所花费的时间.复制.

2)也许你可以在循环中附加一个尾随逗号,并避免循环内字符串长度的条件.而是在方法的末尾添加单个条件,并在需要时删除尾随逗号.

原文地址:https://www.jb51.cc/java/239907.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐