Кратчайший способ изменить свойства - PullRequest
2 голосов
/ 16 сентября 2009

В Java у меня есть java.util.Properties объект, и я хочу получить еще один с теми же парами, но ключами, преобразованными в значения и наоборот.

Если есть столкновение (то есть есть два равных значения), тогда просто выберите в качестве значения произвольный ключ.

Какой самый короткий способ сделать это?

Не стесняйтесь использовать библиотеки, общие коллекции или что-то еще.

Ответы [ 3 ]

6 голосов
/ 16 сентября 2009

Вы можете рассмотреть возможность использования BiMap by google collection, которая по сути является обратимой картой. Это гарантирует уникальность ключей и значений.

Проверьте это здесь . Это API

2 голосов
/ 16 сентября 2009

A Properties объект является Hashtable объектом, поэтому вы должны иметь возможность сделать что-то вроде:

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

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

Результат: 3 строки кода.

Этот код не проверен, но он должен дать вам представление.

1 голос
/ 16 сентября 2009

Что-то вроде:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...