我想知道是否可以更改 java 数组用作其索引的类型的值,而不是
Fruit[0] = orange
你可以有
Fruit[orange] = orange
?
这类似于Perl 等语言中的关联数组表示法。在 Java 中,它们表示为Maps
:
Map<String, String> fruitMap = new HashMap<>();
fruitMap.put("orange", "orange");
实际上java只接受(非负)整数作为其索引,要实现“字符串”,可以使用Map。这是使用 Map 的示例:使用 Map。或者如果还想使用数组,可以使用枚举:java enum tutorial
(我假设这orange
是一个字符串或枚举或其他一些对象类型......)
我想知道是否可以更改 java 数组用作其索引的值...
不,这是不可能的
Java 数组的索引类型是int
. 这从根本上“融入”了 Java 语言设计和 JVM 设计。long
在 Java 8 及以下版本中,即使使用值作为数组索引或数组大小也是不可能的。
仅更改 Java 以允许long
数组索引将是一项艰巨的任务。而且我认为如果不破坏大量现有应用程序就无法做到这一点。例如,可能有数百万行已部署的 Java 代码假定array.length
可以分配给int
.
幸运的是,Java 以 Map 接口及其实现类的形式提供了等价物。唯一缺少的是使 Map 访问看起来像常规 Java 数组访问的“语法糖”。