[解決済み] Java の substring() の時間複雑性
2022-03-04 23:12:39
質問
の時間的複雑性はどの程度でしょうか?
String#substring()
メソッドをJavaで作成できますか?
どのように解決するのですか?
新しい回答
Java 7 のライフタイム内のアップデート 6 の時点で、以下のような挙動になります。
substring
はコピーを作成するように変更されました - したがって、すべての
String
を参照しています。
char[]
である。
ではない
は、私が知る限り、他のオブジェクトと共有されています。ですからその時点で
substring()
はO(n)演算となり、nは部分文字列の数字となります。
古い答え:Java 7以前
文書化されていませんが、ガベージコレクションが必要ないなどと仮定すれば、実際にはO(1)です。
これは、単に新しい
String
オブジェクトを参照し、同じ基礎となる
char[]
が、オフセットとカウントの値が異なる。つまり、コストは検証を行い、1つの新しい(適度に小さい)オブジェクトを構築するのにかかる時間ということになります。これは、ガベージコレクションやCPUキャッシュなどに基づいて時間が変化し得る操作の複雑さについて話すことが賢明である限り、O(1)です。特に、元の文字列や部分文字列の長さには直接依存しません。
関連
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] Java Genericメソッドをstaticにするには?
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] javaでAnnotation Inheritanceのようなものはあるのでしょうか?
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] IntegerからBigIntegerへの変換