我想知道是否有可能改变java数组用作索引的值,而不是
Fruit[0] = orange
你可以
Fruit[orange] = orange
答案 0 :(得分:5)
这类似于Perl等语言中的associative array表示法。在Java中,它们由Maps
表示:
Map<String, String> fruitMap = new HashMap<>();
fruitMap.put("orange", "orange");
答案 1 :(得分:1)
实际上java只接受(非负)整数作为其索引,实现“字符串”,可以使用Map。这是使用Map:using Map的示例。或者,如果您仍想使用数组,则可以使用枚举:java enum tutorial
答案 2 :(得分:1)
(我假设orange
是字符串或枚举或其他对象类型......)
我想知道是否有可能改变java数组用作索引的值...
没有。这是不可能的
Java数组的索引类型为int
。这是从基础层面“融入”Java语言设计和JVM设计。即使使用long
值作为数组索引或数组大小,在Java中也不可能包括Java 8。
仅仅更改Java以允许long
数组索引将是一项艰巨的任务。而且我认为如果不破坏大量现有应用程序就无法完成。例如,可能有数百万行已部署的Java代码假定array.length
可以分配给int
。
幸运的是,Java以Map接口及其实现类的形式提供了相应的功能。唯一缺少的是“语法糖”,它会使Map访问看起来像普通的Java数组访问。