web-dev-qa-db-ja.com

Java.util.Mapに名前を付けるにはどうすればよいですか?

Java.util.Mapは、論理名からその名前で使用するパラメータのセットにマップします。

Map<String,Parameters> howShouldINameThee = ...;

このマップに最適な名前は何ですか?

私は単純に行って、これをparametersまたはparametersMapと呼ぶべきですか?

paramtersByNameキーの使用方法がより明確になるように、Stringのような名前にキーに関する情報を含めますか?

68
Alex B

マップは何かto何か他のものをマップします。
uidToPersonのような名前を使用するのが好きです。 "To"は、マップがあることを示すために考えられる最も短い明確な方法です。

編集:
名前に「キー」と「値」がこの順序で表示されるため、このようにマップに名前を付けることをお勧めします。 valueByKeyとは対照的です。マッピング操作では、キーが最初に来ます。値を与えるput(key, value)またはget(key).

もちろん、これは個人的な好みの問題です。

83
z5h

parametersByNameの内容について混乱しないように、Mapなどの傾向があります。長い間見ていなかったコードをいつ再検討する必要があるかは、決してわかりません。

Javaでは、型指定が明示的であるため、データ構造の名前(parametersByNameMapなど)を含める必要はありません。

26
danben

あなたは実際に自分で質問に答えます。

このマップに最適な名前は何ですか?

マップを名前にマップしたいので、「マップの名前」と言います!!

私の意見では、それは命名規則であるはずです:valueForKey

他の提案keyToValueおよびvalueByKeyを使用すると、keyToValueMap、valueByKeyMapのように、末尾にワードマップを追加する必要があると思います。 Forを使用する場合、それがマッピングであることは言語から明らかです。

8
eigil

私のアプリには、かなり多くのタイプのパラメーターがあります。

たとえば、GAEでは、http要求パラメーターをシリアル化可能な形式に抽出する必要がある場合、マップにhttpRequestParametersまたはhttpReqParamsという名前を付けます。たとえば、sessionAttrs。

GWT RPCの場合、クライアントからサーバーへのパラメーターハッシュには、client2ServerParamsまたはclnt2SrvrParmsという名前を付け、対応するserver2clientParamsまたはsrvr2ClntParmsという名前を付けます。

Openidコンシューマーでは、私はマップに、consumerAuthRequestsまたはredirectFormParametersとそれに対応するproviderResponsesという名前を付けます。

再フォーマットされた入力Main引数のマップでは、inputArgsと呼びます。

私の場合、httpRequestParametersByの名前、client2ServerParamsByName、consumerAuthRequestsByName、inputArgsByName、またはinputArgValueByKeyなどは冗長であり、長すぎるので、とにかくマップのキーが "名前"であることが常にわかります。コレクションであることを示すために、名前が複数であることを確認します。

この方法の例外は、キーが名前ではなくオブジェクトであり、vehicleByDriver、projByMgr、toxicFoodListByAnimalのようにマップに名前を付ける場合です。

1
Blessed Geek