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

Fel*_*eno 4 java arrays string stringbuilder

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

  • 删除该单词的一个字母,
  • 转置两个相邻的字母,
  • 改变一个字母的单词,和
  • 在单词中插入一个字母.

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

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

And*_*ner 6

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

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


StringBuilder只是一个包装器char[],添加功能,如必要时调整数组大小; 插入/删除等时移动元素

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