[解決済み】java.util.Setにget(int index)がないのはなぜですか?)
2022-04-03 20:44:04
質問
正当な理由があるのでしょうが、なぜ
java.util.Set
インターフェースには
get(int Index)
または類似の
get()
メソッドを使用することができますか?
セットは物を入れるには最適のようですが、そこから一つの項目を取り出すエレガントな方法が見つかりません。
最初の項目が欲しいことが分かっている場合は
set.iterator().next()
しかし、そうでない場合は、特定のインデックスの項目を取得するために、配列にキャストする必要があるようです。
セットからデータを取得する適切な方法は何ですか?(イテレータを使う以外に)
APIから除外されているということは、これをしない正当な理由があるのでしょうね。
EDITです。 いくつかの非常に素晴らしい回答があり、またいくつかの回答が「もっとコンテキストを」と述べています。 具体的なシナリオはdbUnitテストで、クエリから返されたセットには1つのアイテムしかなく、そのアイテムにアクセスしようとしていることを合理的に主張することができました。
しかし、この質問はシナリオがなくても、より焦点を絞ったものとして有効です。
セットとリストの違いは何ですか .
以下の素晴らしい回答をありがとうございました。
解決方法は?
集合には順序がないからです。一部の実装ではそうなっています(特に
java.util.SortedSet
インターフェイス)がありますが、これは集合の一般的な特性ではありません。
もし、この方法でセットを使おうとするなら、代わりにリストを使うことを検討すべきです。
関連
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] なぜJavaは静的メソッドのオーバーライドを認めないのですか?
-
[解決済み] なぜJavaには演算子のオーバーローディングがないのですか?
-
[解決済み] intの桁数を取得する方法は?
-
[解決済み] なぜJUnitはassertNotEqualsメソッドを提供しないのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] android.support.v4.app.FragmentActivity' で 'TAG' がプライベートアクセスされている。
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] SetとListの違いは何ですか?
-
[解決済み] 集合からランダムに要素を選ぶ