String vs Char Array vs String Builder(效率表现)
String vs Char Array vs String Builder (efficiency performance)
我正在编写一个拼写校正器,它可以为用户提供建议。为此,我使用单词 1 和 2 edit distance away。有四种技巧:
- 删除单词的一个字母,
- 调换两个相邻的字母,
- 改变单词的一个字母,并且
- 正在给单词插入一个字母。
其中一些需要对单词进行多次迭代,并执行诸如交换两个字母或在字符串中间添加一个字母等操作。
我知道字符串在 java 中是不可变的,并且从字符串构建器插入可能会根据需要创建字符串的副本,所以我想知道 char 数组是否会使它更快。
很难说 - 在没有更多上下文的情况下 - 各种方法中哪种方法最快。 (或者即使速度差异是相关的;或者速度是最重要的指标)。
您需要针对您的情况对各种方法进行基准测试。
StringBuilder
只是 char[]
的包装器,添加了必要时调整数组大小等功能;并在 insert/delete 等
时移动元素
对于某些事情,直接使用 char[] 可能稍微快一些,但是您会失去(或必须重新实现)很多有用的功能。
我正在编写一个拼写校正器,它可以为用户提供建议。为此,我使用单词 1 和 2 edit distance away。有四种技巧:
- 删除单词的一个字母,
- 调换两个相邻的字母,
- 改变单词的一个字母,并且
- 正在给单词插入一个字母。
其中一些需要对单词进行多次迭代,并执行诸如交换两个字母或在字符串中间添加一个字母等操作。
我知道字符串在 java 中是不可变的,并且从字符串构建器插入可能会根据需要创建字符串的副本,所以我想知道 char 数组是否会使它更快。
很难说 - 在没有更多上下文的情况下 - 各种方法中哪种方法最快。 (或者即使速度差异是相关的;或者速度是最重要的指标)。
您需要针对您的情况对各种方法进行基准测试。
StringBuilder
只是 char[]
的包装器,添加了必要时调整数组大小等功能;并在 insert/delete 等
对于某些事情,直接使用 char[] 可能稍微快一些,但是您会失去(或必须重新实现)很多有用的功能。