Я хочу создать экземпляр Java-хэш-карты с литералами на Java. Я использую Java 8.Java - экземпляр hashmap из буквенных пар значений
Я видел из функционального программирования в Java книге, что вы можете сделать это с помощью списков:
final List<String> cities = Arrays.asList("Albany", "Boulder", "Chicago", "Denver", "Eugene");
Но я не видел, как вы можете сделать нечто подобное с хэш-карт ,
Я могу создать хэш-карту, как это:
import java.util.HashMap;
import java.util.Map;
public class ShortestPath1 {
public static void main(final String[] args) {
final Map<String,Integer> station2nlc = new HashMap<String, Integer>();
station2nlc.put("Ealing Broadway", 319000);
station2nlc.put("Ealing Common", 319005);
station2nlc.put("Acton Town LT", 50000);
station2nlc.put("Chiswick Park LT", 54500);
station2nlc.put("Turnham Green LT", 73400);
station2nlc.put("Stamford Brook LT", 71300);
station2nlc.put("Ravenscourt Park LT", 68200);
station2nlc.put("Hammersmith LT", 59300);
station2nlc.put("Barons Court LT", 51600);
station2nlc.put("West Kensington", 76000);
station2nlc.put("Earls Court LT", 56200);
station2nlc.put("West Kensington LT", 76000);
System.out.println("Ealing has NLC: " + station2nlc.get("Ealing Broadway"));
}
}
Но этот синтаксис означает, что Java строит HashMap за одну команду линии. Скорее всего, это.
Для сравнения, в приведенном ниже примере в C++ является то, что я думал, был бы возможно:
#include <string>
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<std::string, int> station2nlc(
{
{ "Ealing Broadway", 319000 },
{ "Ealing Common", 319005 },
{ "Acton Town LT", 50000 },
{ "Chiswick Park LT", 54500 },
{ "Turnham Green LT", 73400 },
{ "Stamford Brook LT", 71300 },
{ "Ravenscourt Park LT", 68200 },
{ "Hammersmith LT", 59300 },
{ "Barons Court LT", 51600 },
{ "West Kensington", 76000 },
{ "Earls Court LT", 56200 },
{ "West Kensington LT", 76000 },
});
std::cout << "Ealing has NLC: " << station2nlc["Ealing Broadway"] << std::endl;
}
@ KonstantinosChalkias Я видел этот пост, но был в 2009 году, поэтому я надеялся, что Java8 может добавить к этому лучшую поддержку. –
Лучший ответ по-прежнему остается прежним - используйте один из классов-помощников guava. –
У этого сообщения есть ответы, которые вы ожидаете (Java 8 и Guava) http://stackoverflow.com/questions/507602/how-can-i-initialize-a-static-map#answer-25829097 –