String vs Char Array vs String Builder(效率性能)

时间:2016-05-05 14:01:17

标签: java arrays string stringbuilder

我正在编写一个拼写纠正器,为用户提供建议。要做到这一点,我正在使用一个和两个编辑距离的单词。有四种技术:

  • 删除单词的一个字母,
  • 转置两个相邻的字母,
  • 更改单词的一个字母,
  • 在单词上插入一个字母。

其中一些需要通过单词进行多次迭代,并执行交换两个字母或在字符串中间添加字母等操作。

我知道String在java中是不可变的,并且字符串生成器中的插入可能会根据需要创建字符串的副本,所以我想知道char数组是否会使这更快。

1 个答案:

答案 0 :(得分:6)

很难说 - 没有更多背景 - 各种方法中哪一种最快。 (或者即使速度差异相关;或者速度是最重要的指标)。

您需要针对您的情况对各种方法进行基准测试。

StringBuilder只是char[]的包装,增加了必要时调整数组大小等功能;插入/删除等时移动元素。

将char []直接用于某些事情可能会稍微快一些,但是你会失去(或必须重新实现)很多有用的功能。