当前位置: 首页 > news >正文

自己怎样做优惠券网站/汕头搜索引擎优化服务

自己怎样做优惠券网站,汕头搜索引擎优化服务,易优cms怎么样,iis7.5搭建网站小编典典您不应使用deleteCharAt方法。正如鲍里斯指出的那样&#xff0c;deleteCharAt方法每次都会复制该数组。Java 5中执行此操作的代码如下所示&#xff1a;public AbstractStringBuilder deleteCharAt(int index) {if ((index < 0) || (index > count))throw new Str…

小编典典

您不应使用deleteCharAt方法。

正如鲍里斯指出的那样,deleteCharAt方法每次都会复制该数组。Java 5中执行此操作的代码如下所示:

public AbstractStringBuilder deleteCharAt(int index) {

if ((index < 0) || (index >= count))

throw new StringIndexOutOfBoundsException(index);

System.arraycopy(value, index+1, value, index, count-index-1);

count--;

return this;

}

当然,仅凭猜测还不足以选择一种优化方法而不是另一种优化方法,因此我决定在此线程中计时三种方法:原始方法,删除方法和子字符串方法。

这是我为原始代码测试的代码:

public static String trimOriginal(StringBuilder sb) {

return sb.toString().trim();

}

删除方法:

public static String trimDelete(StringBuilder sb) {

while (sb.length() > 0 && Character.isWhitespace(sb.charAt(0))) {

sb.deleteCharAt(0);

}

while (sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1))) {

sb.deleteCharAt(sb.length() - 1);

}

return sb.toString();

}

和子串方法:

public static String trimSubstring(StringBuilder sb) {

int first, last;

for (first=0; first

if (!Character.isWhitespace(sb.charAt(first)))

break;

for (last=sb.length(); last>first; last--)

if (!Character.isWhitespace(sb.charAt(last-1)))

break;

return sb.substring(first, last);

}

我执行了100次测试,每次生成带有一万个尾随和前导空格的百万字符StringBuffer。测试本身是非常基础的,但是可以很好地了解这些方法需要花费多长时间。

这是计时三种方法的代码:

public static void main(String[] args) {

long originalTime = 0;

long deleteTime = 0;

long substringTime = 0;

for (int i=0; i<100; i++) {

StringBuilder sb1 = new StringBuilder();

StringBuilder sb2 = new StringBuilder();

StringBuilder sb3 = new StringBuilder();

for (int j=0; j<10000; j++) {

sb1.append(" ");

sb2.append(" ");

sb3.append(" ");

}

for (int j=0; j<980000; j++) {

sb1.append("a");

sb2.append("a");

sb3.append("a");

}

for (int j=0; j<10000; j++) {

sb1.append(" ");

sb2.append(" ");

sb3.append(" ");

}

long timer1 = System.currentTimeMillis();

trimOriginal(sb1);

originalTime += System.currentTimeMillis() - timer1;

long timer2 = System.currentTimeMillis();

trimDelete(sb2);

deleteTime += System.currentTimeMillis() - timer2;

long timer3 = System.currentTimeMillis();

trimSubstring(sb3);

substringTime += System.currentTimeMillis() - timer3;

}

System.out.println("original: " + originalTime + " ms");

System.out.println("delete: " + deleteTime + " ms");

System.out.println("substring: " + substringTime + " ms");

}

我得到以下输出:

original: 176 ms

delete: 179242 ms

substring: 154 ms

如我们所见,与原始的“两个字符串”方法相比,子字符串方法提供了非常轻微的优化。但是,删除方法非常慢,应该避免。

因此,回答您的问题:您可以按照问题中的建议很好地调整StringBuilder。substring方法提供的非常轻微的优化可能无法证明多余的代码是正确的。

2020-11-19

http://www.jmfq.cn/news/4852567.html

相关文章:

  • 青岛企业级网站设计/网络工具
  • 泰安网络犯罪案件/昆明自动seo
  • 慧聪网郭凡生/宁波seo排名方案优化公司
  • 网站怎么建设在哪里接单/免费广告投放平台
  • 网站快照优化怎么做/怎么宣传网站
  • 上海那家公司做响应式网站建设/seo资料网
  • 英文医疗网站建设/推广免费
  • 怎么在百度做原创视频网站/制作网页用什么软件
  • 学室内设计网站/百度如何做推广
  • 网站怎么做?/有什么好的网站吗
  • qq免费的推广引流软件/seo案例分析及解析
  • 有哪些网站做美食的图片很精致/网站外链发布平台
  • 做个网站怎么做/深圳seo外包公司
  • 网站建设销售技巧和话术/百度网站流量查询
  • 惠州网/百度手机端排名如何优化
  • 小程序申请流程/开封seo公司
  • 手机移动端网站做多大/暴风seo论坛
  • 微商/百度上做优化
  • 织梦手机网站怎么安装/qq群推广拉人
  • 杭州知名网站制作公司/seo长沙
  • 二手优品哪个网站做/厦门seo推广外包
  • 中国建设网建设通官方网站/网址查询站长工具
  • 去别人网站挂黑链/推广方案流程
  • 郑州做网站的公司哪家/网站seo优化方案项目策划书
  • wordpress时光轴页面/免费seo快速排名工具
  • 网站地图怎么弄/seo谷歌外贸推广
  • 深圳有做网站公司/百度账号怎么改名字
  • 郑州网站制作公司哪家好/seo优化是怎么回事呢
  • 营销型网站方案ppt模板/新网站推广方案
  • 公司网站维护是做什么的/如何优化关键词的排名