最短的反转属性的方法

时间:2009-09-16 12:01:56

标签: java properties

在Java中,我有一个java.util.Properties对象,我希望获得另一个具有相同对的对象,但是键转换为值,反之亦然。

如果存在冲突(即有两个相等的值),则只需选择任意键作为值。

最简单的方法是什么?

随意使用库,公共集合或其他任何内容。

3 个答案:

答案 0 :(得分:6)

你可以考虑使用谷歌收藏的BiMap,它本质上是一个可逆的地图。它保证了键和值的唯一性。

查看here。这是API

答案 1 :(得分:2)

Properties对象是Hashtable对象,因此您应该可以执行以下操作:

Hashtable<String, String> reversedProps = new Hashtable<String, String>();

for (String key : props.keySet()) {
    reversedProps.put(props.get(key), key);
}

结果:3行代码。

此代码未经测试,但它可以为您提供想法。

答案 2 :(得分:1)

类似的东西:

Properties fowards = new Properties();
fowards.load(new FileInputStream("local.properties"));

Properties backwards = new Properties();

for (String propertyName : fowards.stringPropertyNames())
{
  backwards.setProperty(forwards.get(propertyName), propertyName);
}