在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]);
}