我想知道是否有可能更改java数组使用哪种值作为其索引,而不是使用
Fruit[0] = orange你本可以
Fruit[orange] = orange发布于 2013-04-15 10:55:01
实际上java只接受(非负)整数作为它的索引,要实现"string",你可以使用Map。这是use Map:using Map的示例。或者,如果您仍然希望使用数组,则可以使用枚举:java enum tutorial
发布于 2013-04-15 10:46:42
这类似于Perl等语言中的associative array表示法。在Java语言中,它们由Maps表示
Map<String, String> fruitMap = new HashMap<>();
fruitMap.put("orange", "orange");发布于 2013-04-15 10:55:22
(我假设orange是一个字符串、枚举或某种其他对象类型...)
我想知道是否有可能改变java数组用作索引的值的类型……
不是的。这是不可能的
Java数组的索引类型是int。这是Java语言设计和基础级别的JVM设计的“烘焙”。甚至在Java8及之前的Java8中,使用Java值作为数组索引或数组大小也是不可能的。
仅更改Java以允许long数组索引将是一项艰巨的任务。我认为,如果不破坏许多现有的应用程序,就不可能做到这一点。例如,可能有数百万行已部署的Java代码假定可以将array.length分配给int。
幸运的是,Java以Map接口及其实现类的形式提供了等价物。唯一缺少的是使Map访问看起来像常规Java数组访问的“语法糖”。
https://stackoverflow.com/questions/16006922
复制相似问题