HashMap без геттера? - PullRequest
       7

HashMap без геттера?

0 голосов
/ 27 декабря 2011

Предположим, у меня есть хэш-карта, подобная этой

 Map map = new HashMap();
map.put(key, p.getText());

и затем, чтобы получить значение, я должен сделать это:

map.get("key_value");

есть ли способ получить значение следующим образом:

map.key_value;

чтобы ускорить мою заявку?

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Это не совсем так, как работает Map. Ссылка с использованием оператора-члена (.) в Java означает, что вы обращаетесь к общедоступному члену переменной, а ключи не сохраняются как открытые члены карты.

2 голосов
/ 27 декабря 2011

Если все ваши ключи известны заранее, вы можете расширить HashMap и добавить собственные методы получения для каждого ключа, чтобы он работал так, как вы хотите.Но это не ускорит выполнение вашей программы.Все это покупает вас, может быть, немного удобства.

Например:

public class MyCustomHashMap extends HashMap
{
    public Object key_value()
    {
        return this.get("key_value");
    }
}
1 голос
/ 27 декабря 2011

Возможно, вам удастся что-то подсунуть с помощью значений Collection? Вы можете получить более примитивное представление ваших объектов, но вы все еще работаете с HashMap и т. Д.

Но я сомневаюсь, что это поможет вам ускорить ваше приложение, так как это звучит как микро-улучшение, которое не слишком поможет.

В любом случае, если HashMap действительно ваше узкое место, может быть, вы хотите использовать что-то еще?

...