在Java中以更简洁的方式实例化映射

在Java中以更简洁的方式实例化映射,java,arrays,map,hashmap,instantiation,Java,Arrays,Map,Hashmap,Instantiation,有没有更简单的方法 Map<String, Integer> values = new HashMap<String, Integer>(); values.put("A", 1); values.put("E", 1); values.put("D", 2); values.put("R", 2); values.put("B", 3); values.put("M", 3); values.put("V", 4); values.put("Y", 4); values

有没有更简单的方法

Map<String, Integer> values = new HashMap<String, Integer>();
values.put("A", 1);
values.put("E", 1);
values.put("D", 2);
values.put("R", 2);
values.put("B", 3);
values.put("M", 3);
values.put("V", 4);
values.put("Y", 4);
values.put("J", 8);
values.put("X", 8);
而不是

int[] temp = new int[2]
temp[0] = 1;
temp[1] = 2;
我正在寻找与上面的地图类似的东西。 可能吗


谢谢你的帮助,一如既往:)

不,没有直接的方法可以做到这一点

您需要按照建议初始化映射

Map<String, Integer> values = new HashMap<String, Integer>();
values.put("A", 1);
values.put("E", 1);
values.put("D", 2);
values.put("R", 2);
values.put("B", 3);
values.put("M", 3);
values.put("V", 4);
values.put("Y", 4);
values.put("J", 8);
values.put("X", 8);
Map values=newhashmap();
价值。付诸表决(“A”,1);
价值。付诸表决(“E”,1);
价值。投入(“D”,2);
价值。投入(“R”,2);
价值。付诸表决(“B”,3);
价值。投入(“M”,3);
价值。投入(“V”,4);
价值。把(“Y”,4);
价值。投入(“J”,8);
价值。将(“X”,8);
如果这些值中有任何模式,可以将其简化为使用循环

另一种方法是使用HashMapBuilder

请参见此处


另一种选择是使用。他们有一个解决方法。

你可以试试这个,但你必须小心:

HashMap<String, Integer> values = new HashMap<String, Integer>()
{
    {
        put("A", 1);
        put("E", 1);
        put("D", 2);
        put("R", 2);
        put("B", 3);
        put("M", 3);
        put("V", 4);
        put("Y", 4);
        put("J", 8);
        put("X", 8);
    }
};
HashMap value=newhashmap()
{
{
付诸表决(“A”,1);
付诸表决(“E”,1);
付诸表决(“D”,2);
put(“R”,2);
付诸表决(“B”,3);
put(“M”,3);
放(V,4);;
放置(“Y”,4);
put(“J”,8);
放置(“X”,8);
}
};

阅读更多信息。

仅使用Java没有更简单的方法,但如果您使用,您可以这样做:

  Map<String, Integer> values = 
     ImmutableMap.<String, Integer> builder().put("A", 1).put("E", 1).put("D", 2).build();
Map值=
不可变地图。builder().put(“A”,1).put(“E”,1).put(“D”,2).build();
另见:


如果你认为你知道键和值的组合,你可以这样做,但这是一种黑客行为:

String[] keys = {"A", "B", "C"};
int[] values = {1, 2, 3};

Map<String, Integer> myMap = new HashMap<String, Integer>();

for(int i = 0; i < keys.length; i++){
  myMap.put(keys[i], values[i]);
}
String[]键={“A”、“B”、“C”};
int[]值={1,2,3};
Map myMap=newhashmap();
for(int i=0;i

但是您必须非常小心,最重要的是,两个数组的长度应该相同。

您看过HashMap中的方法了吗??。。如果您使用的是eclipse,ctrl+space将给出您的答案。我不知道在HashMapAPI中查找什么。你能给我指一下正确的方向吗?我没有使用eclipse@TheLostMindwell..如果您查看HashMap API,您将找不到任何有助于您的方法。。我会看看彼得的答案。。。如果需要,使用循环…这是我在C/C++中要做的,请检查您的代码。它是无错误的吗???@Qadir是的,我纠正了它,谢谢你指出
String[] keys = {"A", "B", "C"};
int[] values = {1, 2, 3};

Map<String, Integer> myMap = new HashMap<String, Integer>();

for(int i = 0; i < keys.length; i++){
  myMap.put(keys[i], values[i]);
}