最短的反转属性的方法
在Java中我有一个java.util.Properties
对象,我想获得另一个具有相同对但但是键转换为值而反之亦然。
如果存在碰撞(即有两个相等的值),则只需选择任意键作为值。
最简单的方法是什么?
随意使用库,公共集合或其他任何东西。
Properties
对象是一个Hashtable
对象,因此您应该能够执行以下操作:
Hashtable reversedProps = new Hashtable(); for (String key : props.keySet()) { reversedProps.put(props.get(key), key); }
结果:3行代码。
这段代码未经测试,但它应该给你一个想法。
你可以考虑使用谷歌collections的BiMap,这本质上是一个可逆的地图。 它保证了密钥和值的一致性。
看看这里 。 这是API
就像是:
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); }