Расширьте HashMap, чтобы добавить метод putChildren - PullRequest
1 голос
/ 02 апреля 2010

У меня вопрос, я хочу разработать программу для расширения хэш-карты, чтобы добавить метод putchildren. Я написал основной класс, но теперь я хочу написать метод putChildrenValue .. Мой вопрос: Мне нужно реализовать метод putChildrenValue с 3 параметрами, ключ String, ключ String, ObjectValue. Соответственно, она будет хранить систему, как описано выше.

Когда я закончил этот метод Когда вы закончите данные метода

Key1 = "RUBY" value=HashMap which has -> "key2" = 5248 && "VALUE" = German
Key1 = "PYTHON" value=HashMap which has -> "key2" = 1234 && -> "VALUE" = German

Мой основной класс:

public static void main(String [] args)
{
    ExtendedHashMap extendedMap = new ExtendedHashMap();
    extendedMap.put (“Row1”, “Column1”, “German”);
    extendedMap.put (“Row1”, “Column2”, “English”);
    extendedMap.put (“Row1”, “Column3”, “Spanish”);
    extendedMap.put (“Row2”, “Column1”, “Ruby”);
    extendedMap.put (“Row2”, “Column2”, “Python”);
    extendedMap.put (“Row3”, “Column3”, “Java”);
}

Кто-нибудь может мне помочь?

1 Ответ

4 голосов
/ 02 апреля 2010

Это может пойти так:

import java.util.HashMap;

public class ExtHashMap<K1, K2, V> extends HashMap<K1, HashMap<K2, V>> {

  public ExtHashMap() {
    super();
  }

  public void putChildrenValue(K1 key1, K2 key2, V value) {

    HashMap<K2, V> childMap = get(key2);
      if (childMap == null) { 
        childMap = new HashMap<K2, V>();
        put(key1, childMap);
      }
      childMap.put(key2, value);
    }
  }
}

В следующем фрагменте приведен пример того, как его создать и использовать:

ExtHashMap<String, int, String> map = new ExtHashMap<String, int, String>();
map.putChildValue("RUBY", 1234, "VALUE1");
map.putChildValue("PYTHON", 4321, "VALUE2");

Дочерние карты создаются автоматически по требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...