首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改数组的索引值

更改数组的索引值
EN

Stack Overflow用户
提问于 2013-04-15 10:45:14
回答 3查看 5.3K关注 0票数 0

我想知道是否有可能更改java数组使用哪种值作为其索引,而不是使用

代码语言:javascript
复制
Fruit[0] = orange

你本可以

代码语言:javascript
复制
Fruit[orange] = orange
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 10:55:01

实际上java只接受(非负)整数作为它的索引,要实现"string",你可以使用Map。这是use Map:using Map的示例。或者,如果您仍然希望使用数组,则可以使用枚举:java enum tutorial

票数 1
EN

Stack Overflow用户

发布于 2013-04-15 10:46:42

这类似于Perl等语言中的associative array表示法。在Java语言中,它们由Maps表示

代码语言:javascript
复制
Map<String, String> fruitMap = new HashMap<>();
fruitMap.put("orange", "orange");
票数 5
EN

Stack Overflow用户

发布于 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数组访问的“语法糖”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16006922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档