以下のようにマップを作成できることを知っています。
_private static final ImmutableMap<String,String> WordMap =
ImmutableMap.<String, String>builder()
.put("blah", "blahblah").put("blabla", "blahblahblah").build()
_
マップの値を設定ファイルに保存したいのですが。 _values=value1,value2,value3
_を実行してから、構成ファイルに別のハッシュセットの値を既に保存しています。new HashSet<String>(Arrays.asList(prop.getProperty(values).split(",")))
私の地図にも同じようなことをしたいのですが。任意のヒント? _Java.util.Properties
_を使用しています
JSONを使用しないことを指定したので、次のようにマップを単一のプロパティとして保存できます。
map=key1=value1,key2=value2,key3=value3
Guava's Splitter and Joiner を使用して、マップの読み取りと書き込みを簡略化します。
String formatMap(Map<String, String> map) {
return Joiner.on(",").withKeyValueSeparator("=").join(map);
}
Map<String, String> parseMap(String formattedMap) {
return Splitter.on(",").withKeyValueSeparator("=").split(formattedMap);
}
これは、キーと値に「、」または「=」の文字が含まれていない限り機能します。
マップの内容を文字列としてフォーマットします。 JSONなどの標準形式を使用します。 json-smart ライブラリを使用すると、次のようになります。
JSONObject json = new JSONObject();
json.putAll(WordMap);
String serializedMap = json.toString();
prop.setProperty("wordMap", serializedMap);
マップを解析するには:
String serializedMap = prop.getProperty("wordMap");
JSONObject json = (JSONObject) JSONValue.parse(serializedMap);
Map<String, String> wordMap = new HashMap<>();
for (Map.Entry<String,Object> entry : json.entrySet()) {
wordMap.put(entry.getKey(), (String) entry.getValue());
}
Java.util.Propertiesは、プロパティファイルに記載されているキーと値のペアを格納するために内部的にハッシュテーブルを使用します。あなたはあなたの目的のためにそれを最大限に活用することができます。