[解決済み] イテレータのカウント/長さ/サイズを取得する最良の方法は何ですか?
2022-10-16 14:50:50
質問
イテレータのカウントを取得するための、計算機的に速い方法はありますか?
int i = 0;
for ( ; some_iterator.hasNext() ; ++i ) some_iterator.next();
... CPUサイクルの無駄遣いのような気がします。
どのように解決するのですか?
イテレータを取得しただけなら、それはそれでいいのですが、このイテレータは
を知ることができます。
そのため、その結果を問い合わせることはできません。そのため、その結果を問い合わせることはできません。
と思われる
でこれを効率的に行うユーティリティメソッドがあります (たとえば
Iterators.size()
のような)、しかしその裏では、あなたの例と同じように、イテレータを消費してカウントしているだけなのです。
しかし、多くのイテレータはコレクションから来るので、しばしばそのサイズを問い合わせることができます。また、イテレータを取得するのがユーザーが作成したクラスである場合、そのクラスで size() メソッドを提供することを検討することができます。
要するに、あなたが だけ しかし、多くの場合、基礎となるコレクションまたはオブジェクトにアクセスすることができ、そこから直接サイズを取得することができるかもしれません。
関連
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaで、オブジェクトの大きさを決定する最も良い方法は何ですか?
-
[解決済み] IteratorをStreamに変換するには?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】2つのリストを並列に反復処理する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
強制型変換について
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
アクセス制限の解決方法: ---- in Java
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ