Вот простой класс, который я использовал, чтобы сделать это (я не хотел иметь еще одну зависимость от третьей стороны). Он не предлагает все функции, доступные на Картах, но это хороший старт.
public class BidirectionalMap<KeyType, ValueType>{
private Map<KeyType, ValueType> keyToValueMap = new ConcurrentHashMap<KeyType, ValueType>();
private Map<ValueType, KeyType> valueToKeyMap = new ConcurrentHashMap<ValueType, KeyType>();
synchronized public void put(KeyType key, ValueType value){
keyToValueMap.put(key, value);
valueToKeyMap.put(value, key);
}
synchronized public ValueType removeByKey(KeyType key){
ValueType removedValue = keyToValueMap.remove(key);
valueToKeyMap.remove(removedValue);
return removedValue;
}
synchronized public KeyType removeByValue(ValueType value){
KeyType removedKey = valueToKeyMap.remove(value);
keyToValueMap.remove(removedKey);
return removedKey;
}
public boolean containsKey(KeyType key){
return keyToValueMap.containsKey(key);
}
public boolean containsValue(ValueType value){
return keyToValueMap.containsValue(value);
}
public KeyType getKey(ValueType value){
return valueToKeyMap.get(value);
}
public ValueType get(KeyType key){
return keyToValueMap.get(key);
}
}
Нет необходимости (и не рекомендуется) изменять владельца или права доступа к каталогу opt / phpstorm. Фактически, возвращаемое сообщение об ошибке говорит, что именно вы должны сделать: запустите его как привилегированный пользователь, чтобы обновить его .
После выхода из PHPStorm вы можете запустить его как привилегированный пользователь, используя следующие инструкции
sudo updatedb && sudo locate phpstorm.sh
sudo /path/to/phpstorm.sh
Первая инструкция обновляет базу данных locate и возвращает местоположение исполняемого файла phpstorm на вашем компьютере. Используйте возвращенное местоположение в качестве пути во второй инструкции.
При запуске PHPStorm от имени пользователя root он запускается с настройками по умолчанию. Он может даже спросить вас, хотите ли вы применить свою лицензию ... Не нужно ничего менять: настройки по умолчанию и запуск PHPStorm в режиме оценки будут работать просто отлично. После запуска проверьте наличие обновлений в меню «Справка» и примените их в обычном режиме. PHPStorm может перезапустить еще раз с правами root. Просто закройте его еще раз и перезапустите в обычном режиме. При перезапуске от имени пользователя вам будет предоставлена возможность выбрать обычные настройки (обычно хранящиеся в каталоге вашего пользователя: будет предложен путь). Принять и продолжить. PHPStorm запустится со всеми вашими предпочтениями и настройками, восстановленными и должным образом обновленными.
Если требуются обновления плагинов, вы можете обновить их в обычном режиме. Нет необходимости делать это с помощью root.
Это решение рекомендовано JetBrains. Смена владельца или прав доступа к каталогу opt / phpstorm не рекомендуется и фактически указана как неверно Jet Brains, поскольку вы можете проверить их ответ относительно процесса обновления аналогичного продукта: Исправлено: сбой автоматического обновления PyCharm в Linux из-за разрешений .