私はこのようなループを持っている:ストリングと性能
String myString = "123456789";
String prefix = null;
for (int i=6;i>=0;--i)
{
prefix = myString.substring(0,i);
process(prefix);
}
は、問題は、このコードブロックがN回実行される場合、N * 7つの文字列が作成されることである(7つの文字列がそれぞれ作成されますサブストリングメソッドは新しいストリングを作成し、このメソッドは実行ごとに7回呼び出されるため)。 この場合、パフォーマンスを向上させる方法について考えています。私は、実行ごとに1つのStringのみを使用する方法があるかどうかを知りたかったので、毎回これを変更しました。それは、StringBuilderのの目的だが、私はStringBuilderのは、この場合には役に立たないと思う:この場合
String myString = "123456789";
StringBuilder prefix = new StringBuilder(myString);
for (int i=6;i>=0;--i)
{
prefix.delete(i,prefix.length());
process(prefix.toString());
}
、接頭辞は常に同じStringBuilderオブジェクトを参照するが、同じ問題がプレフィックスので、別の場所に表示されます。 toString()は常に新しいStringオブジェクトを返します。
(私はトピックが何度も扱われてきた。しかし、私はいくつかの検索を行ってきたと私は解決策を見つけられませんでした、多分それはメモリの最小限の使用だということを知っていますか?)あなたの助け
ため感謝
StringBuilderで処理するプロセスメソッドを変更できませんか?それともCharSequenceを使用して両方を受け入れますか? – berry120
あなたは 'StringBuilder'(または最も特定の共通のスーパータイプを取る' CharSequence')を取ることができますか? –
"パフォーマンスを改善する"を定義してください。コードの実行が遅すぎますか?あまりにも多くのメモリを使用していますか?もしそうなら、どれくらいの頻度でそれを使う必要がありますか? – JRL