Чтобы избежать предупреждений компилятора, кода это следующим образом:
HashMap<Flows, FlowStatics> myHashMap = new HashMap<Flows, FlowStatics>();
myHashMap.put(flows, flowStatics);
Если вы не Параметризуем переменную myHashMap , то вы не можете добавить во вторую строку без предупреждения.
Здесь работает пример о том, как 'печать' некоторые статистические данные Hashmap:
HashMap<Flows, FlowStatics> myHashMap = new HashMap<Flows, FlowStatics>();
for (int i = 0; i < 10; i++) {
// OP commented that the map is populated in a loop
myHashMap.put(createNewFlow(), createNewFlowStatistics()); // populate map
}
System.out.printf("Number of items in Map: %s%n", myHashMap.keyset().size());
(попросил ОП для adivice в комментарии к другому ответу)
Этот вопрос без ответа, потому ли это «правильный путь» полностью зависит от того, какова цель вашей программы является. Следует отметить: объект, который вы используете в качестве ключа, должен правильно реализовывать 'hashCode()' и 'equals()'. – Jesper
@Red Lion: Да, это правильно (с оговорками, о которых упоминал @ Jesper). Помните, однако, что вы не просто добавляете два объекта, вы создаете сопоставление между одним ('flow') и другим (' flowStatics'), чтобы впоследствии вы могли посмотреть 'flowStatics', используя' flow', как ключ. – David
опубликуйте свой класс Flows, и мы можем сказать вам, допустимо ли его использовать в качестве ключа HashMap –