web-dev-qa-db-ja.com

Java MapオブジェクトをPropertiesオブジェクトに変換する

Java MapオブジェクトをPropertiesオブジェクトに変換するために、以下より良い方法を提供できる人はいますか?

    Map<String, String> map = new LinkedHashMap<String, String>();
    map.put("key", "value");

    Properties properties = new Properties();

    for (Map.Entry<String, String> entry : map.entrySet()) {
        properties.put(entry.getKey(), entry.getValue());
    }

ありがとう

31
Joel

Properties::putAll(Map<String,String>)メソッドを使用します。

Map<String, String> map = new LinkedHashMap<String, String>();
map.put("key", "value");

Properties properties = new Properties();
properties.putAll(map);
72
Boris Pavlović

apache _commons-collection4_を使用することもできます

org.Apache.commons.collections4.MapUtils#toProperties(Map<K, V>)

例:

_Map<String, String> map = new LinkedHashMap<String, String>();

map.put("name", "feilong");
map.put("age", "18");
map.put("country", "china");

Properties properties = org.Apache.commons.collections4.MapUtils.toProperties(map);
_

javadocを参照

https://commons.Apache.org/proper/commons-collections/apidocs/org/Apache/commons/collections4/MapUtils.html#toProperties(Java.util.Map)

5
feilong

これはCommons Configurationで行うことができます:

Properties props = ConfigurationConverter.getProperties(new MapConfiguration(map));

http://commons.Apache.org/configuration

2
Emmanuel Bourg

MapAsProperties を試してみてください Cactoos から:

import org.cactoos.list.MapAsProperties;
import org.cactoos.list.MapEntry;
Properties pros = new MapAsProperties(
  new MapEntry<>("foo", "hello, world!")
  new MapEntry<>("bar", "bye, bye!")
);
1
yegor256