[解決済み] Key-Value Pairとは何ですか?[クローズド]
質問
私はアンドロイド・アプリケーションをプログラムできるようにJavaを独学で勉強しており、キー・バリュー・ペアを使用する必要性に遭遇しましたが、それが何であるかわかりません。
私が戸惑っているのは、これが通常の変数とどう違うのかということです。例えば、String型変数がオブジェクトを指し、int型変数がint値を指すとします。この変数はquot;key"で、オブジェクトはquot;valueではないのでしょうか?
どのように解決するのですか?
最も単純なレベルでは、キーと値のペアは2つの値だけで、一方を「キー」、もう一方を「値」として指定します。
しかし、キーと値のペアについては、マッピング、すなわちキーから対応する値(または値)にマッピングする(数学的)関数の文脈で語る方がより一般的です。 このマッピングの特性によって、キーと値のペアのセットを制限することができます。 たとえば、1対1のマッピングの場合、セットのキーは一意である必要があります。
続いての質問です。
これは配列と同じですか?
そうですね......配列は、インデックス(整数)の集合から値へのマッピングと考えることができます。 しかし、マッピングはより一般的なものです。 そしてJavaでは、配列には他の特性があって
Map
そして、よりシンプルで高速、かつメモリ消費量の少ない実装になっています。
(言語によっては、quot;array"というデータ型が存在しないものもあります。 その代わり、プリミティブはquot;ハッシュやquot;連想配列(alistative array)...つまり、より一般的なマップである)。
<ブロッククオートまた、キーは常に文字列なのでしょうか?
いいえ、キーはどのような型でもかまいません。 (一般的には
悪知恵
を使用して実装されている場合は特にそうです。
Map
という型があります。 ただし、状況によってはそれさえもうまくいくことがあります)。
String 型の変数がオブジェクトを、int 型の変数が int 型の値を指すとします。その変数はquot;key"で、オブジェクトはquot;value"ではないでしょうか?
少なくとも、Javaのような静的言語ではそうではありません。 キーと値のペアを変数バインディングと区別するのは、"key" オブジェクトがデータであり、それゆえ異なる値を取ることができるという点です。 それに対して、変数の名前はプログラムのソースコードにハードウエアされており、実行時に変更することはできません。
(いくつかの動的言語では、新しい変数を動的に (実行時に) 作成することができます。そのような言語では、変数は、プログラムの実行のある時点で、スコープを表すマッピングのキーと値のペアだと主張できます。 しかし、Javaはそうではないのです.)
関連
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] ハッシュマップのキーを指定して、値を更新するには?
-
[解決済み] 値のペアの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 - JTextFieldが空かどうかを確認する
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない