2016-04-14 113 views
-1

得到变量名我有一个类型的Java数组双与用于存储值那么变量名:爪哇 - 从双阵列

double [] countArray = {teaCount, hotMealCount, drinkWaterCount, phoneCallCount}; 

我希望通过它的索引打印变量出了名。

例如如果我请求countArray[0],它将返回teaCount而不是存储的双倍数。

+2

我认为地图对于这个问题更好。 –

+4

使用地图,Java不能这样工作 – MadProgrammer

回答

4

如果你想你需要存储这些

String[] countArray = {"teaCount", "hotMealCount", "drinkWaterCount", "phoneCallCount"}; 

虽然最有可能是你的名字想要一个Map<String, Double>

Map<String, Double> map = new LinkedHashMap<>(); 
map.put("teaCount", teaCount); 
map.put("hotMealCount", hotMealCount); 
map.put("drinkWaterCount", drinkWaterCount); 
map.put("phoneCallCount", phoneCallCount); 

这两个存储名称找到它的价值。

2

你想要做什么是不可能的这种方法。一个解决方案将有一个Map<String, Double>您存储的名称作为关键和计数作为Map中的值。

实际上,变量名称是暂时性的,您以后无法访问该名称。而且,如果向数组添加某些内容,则不会将该变量按名称添加到数组中,而是将该值添加到数值位置。

0

Yor正在存储字符串,而不是数组中的double值。

如果要打印索引值,只需使用:

的System.out.println(countArray [0]);

而且会打印teaCount。

希望它有效。

+0

这不是他要求的。再次阅读问题。他有一个存储双变量的数组,他希望获取存储在其数组的特定索引中的变量的名称。 – goncalopinto

3

你不能做到这一点,你所希望的方式,但Map coould您的解决方案:

Map<String, Double> count = new HashMap<String, Double>(); 
count.put("teaCount", 1.5); 
count.put("hotMealCount", 2.5); 
// etc 

count.get("teaCount"); // 1.5 
+0

只是一个说明:你不能在容器中使用double,你必须使用Double(所有的装箱/拆箱)。图书馆,它是http://trove.starlight-systems.com/ – Exceptyon