在Javascript中,我们可以写下如下声明。
var f_names = {
'a' : 'Apple',
'b' : 'Banana'
'c' : 'Carrot'
};
我可以将其称为f_names['c']
,并将输出设为Carrot
。
在Java而不是Map中是否有相同的功能?与上面类似?
我们可以在java中创建一个String数组。
String[] names= { "Apple","Banana", "Carrot" };
然后可以调用names[2]
,这会将输出返回为Carrot
。
我正在寻找这样的解决方案。
答案 0 :(得分:3)
这根本不是条件陈述。这是Javascript对象。在Java中也有Map。
是的,您只是在Java中寻找Map。其中存储了键值对。
Map<String, String> map= new HashMap<String, String>();
map.put("a", "Apple");
map.put("b", "Banana");
你可以检索
String a = map.get("a");// which results "Apple"
更新:如果您正在寻找其他方式
{{k,v},{},{}}
)数组。迭代得到了
要求的价值。在您最新评论后更新: ( JS和Java都是语言。如果JS能够像上面那样实现它(以简单的方式),为什么我们在Java中使用Map。)
您正在比较两种语言的语法,使用相同的语法非常不可能。如果你仍想找到相同的方法,下面的内容将是最接近的
HashMap<String, String > map = new HashMap<String, String>(){{
put("a", "Apple");
put("b", "Banana");
}};
不确定你是否接受这种作弊;)
答案 1 :(得分:1)
语法在Java中有点复杂。
要获得最接近的等价物,您可以使用TreeMap
,它会对其键进行排序(在这种情况下默认为词典顺序):
Map<String, String> names = new TreeMap<String, String>();
names.put("a", "Apple");
names.put("b", "Banana");
names.put("c", "Carrot");
System.out.println(names);
<强>输出强>
{a=Apple, b=Banana, c=Carrot}
如果您确实不想使用Map
,则可以使用二维array
。
例如:
String[][] namesArray = new String[][]{{"a","Apple"},{"b","Banana"},{"c","Carrot"}};
System.out.println(Arrays.deepToString(namesArray));
<强>输出强>
[[a, Apple], [b, Banana], [c, Carrot]]
备注强>
Map
的许多优点之一是您可以通过键检索您的值,这可能是您感兴趣的内容。例如:names.get("A")
将返回"Apple
。array
,您需要按索引检索您的值。例如,namesArray[1][1]
为"Banana"
。答案 2 :(得分:0)
虽然Map是你真正想要的东西,你也可以使用枚举(我无法帮助那些;我缺乏常规)和公共静态变量:
public final static String a = "Apple";
public final static String b = "Banana";
public final static String c = "Carrot";
然后,他们可以在程序的任何地方进行引用。假设变量位于名为Fruits的类中,它们将被引用为:
Fruits.a
Fruits.b
Fruits.c
答案 3 :(得分:0)
这是一个Javascript对象(Java Script Object Notation),它或多或少像一个键值对。在Java中,这可以通过Map接口实现,并且该接口的大量使用的实现是HashMap。