0

我想知道是否可以更改 java 数组用作其索引的类型的值,而不是

Fruit[0] = orange

你可以有

Fruit[orange] = orange

?

4

3 回答 3

5

这类似于Perl 等语言中的关联数组表示法。在 Java 中,它们表示为Maps

Map<String, String> fruitMap = new HashMap<>();
fruitMap.put("orange", "orange");
于 2013-04-15T02:46:42.457 回答
1

实际上java只接受(非负)整数作为其索引,要实现“字符串”,可以使用Map。这是使用 Map 的示例:使用 Map。或者如果还想使用数组,可以使用枚举:java enum tutorial

于 2013-04-15T02:55:00.520 回答
1

(我假设这orange是一个字符串或枚举或其他一些对象类型......)

我想知道是否可以更改 java 数组用作其索引的值...

不,这是不可能的

Java 数组的索引类型是int. 这从根本上“融入”了 Java 语言设计和 JVM 设计。long在 Java 8 及以下版本中,即使使用值作为数组索引或数组大小也是不可能的。

仅更改 Java 以允许long数组索引将是一项艰巨的任务。而且我认为如果不破坏大量现有应用程序就无法做到这一点。例如,可能有数百万行已部署的 Java 代码假定array.length可以分配给int.


幸运的是,Java 以 Map 接口及其实现类的形式提供了等价物。唯一缺少的是使 Map 访问看起来像常规 Java 数组访问的“语法糖”。

于 2013-04-15T02:55:22.497 回答