2016-04-14 8 views
-1

Ich habe ein Java-Array vom Typ double mit Variablennamen zum Speichern von Werten, die als so:Java - get Variablenname von Double Array

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

Ich suche die Namen der Variablen, indem sie den Index drucken .

z.B. Wenn ich countArray[0] anfordere, würde teaCount anstelle des Doppelten zurückgeben, das gespeichert wird.

+2

Ich denke, eine Karte ist besser für dieses Problem. –

+4

Verwenden Sie eine Karte, Java funktioniert nicht auf diese Weise – MadProgrammer

Antwort

4

Wenn Sie die Namen, die Sie diese

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

Obwohl die meisten wahrscheinlich speichern müssen Sie ein Map<String, Double> wie

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

Diese speichert sowohl den Namen eines gesuchten nd den Wert, den es hat.

2

Was Sie tun möchten, ist mit diesem Ansatz nicht möglich. Eine Lösung wäre, eine Map<String, Double> zu haben, in der Sie den Namen als Schlüssel und die Zählung als der Wert in Map speichern.

Eigentlich ist der Variablenname vorübergehend etwas und Sie können später nicht auf den Namen zugreifen. Und wenn Sie etwas zu einem Array hinzufügen, fügen Sie die Variable nicht namentlich zum Array hinzu, sondern den Wertort.

0

Sie speichern Strings, keine doppelten Werte im Array.

Wenn Sie den Wert eines Index drucken möchten, verwenden Sie einfach:

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

Und das wird TeeCount drucken.

Ich hoffe, es funktioniert.

+0

Das ist nicht, was er fragt. Lesen Sie die Frage erneut. Er hat ein Array, das doppelte Variablen speichert, und er möchte den Namen der Variablen erhalten, die in einem bestimmten Index seines Arrays gespeichert ist. – goncalopinto

3

Sie können es nicht tun, wie Sie wollen, aber die Map coould Ihre Lösung:

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

nur ein Hinweis: Sie können nicht doppelt in Containern verwenden, müssen Sie Double (mit allen Boxen/Unboxing) verwenden. Bibliothek, die es tut, ist http://trove.starlight-systems.com/ – Exceptyon