HashMap o.ä. mit Strings und doubles

Joghurt

Grünschnabel
Hallo,

ich möchte in einer Datenstruktur double Werte so ablegen, dass ich über String Schlüssel darauf zugreifen kann.

HashMap o.ä. arbeiten ja offensichtlich mit Objekten und so einfach kann ich Strings und doubles wohl nicht benutzen. Muss ich jetzt umständlich rumcasten, meine eigenen Klassen schreiben oder gibt's da was, das ich übersehen habe?

Für einen Tipp wäre ich sehr dankbar!

Gruß,


Joghurt
 
Original geschrieben von Joghurt
Hallo,

ich möchte in einer Datenstruktur double Werte so ablegen, dass ich über String Schlüssel darauf zugreifen kann.

HashMap o.ä. arbeiten ja offensichtlich mit Objekten und so einfach kann ich Strings und doubles wohl nicht benutzen. Muss ich jetzt umständlich rumcasten, meine eigenen Klassen schreiben oder gibt's da was, das ich übersehen habe?

Für einen Tipp wäre ich sehr dankbar!

Gruß,
Joghurt

Wieso kannst Du Strings und doubles nicht benutzen? Strings sind ja wohl offensichtlich Objekte, und double/int/float lassen sich mit den zugehörigen Wrapper-Klassen auch prima als Objekte benutzen. Ich sehe nichts, was gegen eine HashMap sprechen würde.
 
Hallo!

Siehe:
Code:
import java.util.HashMap;
import java.util.Map;

public class DoubleMap {

	public static void main(String[] args) {
		Map map = new HashMap();
		
		map.put("d1",new Double(2.4535D));
		map.put("d2",new Double(5.35D));
		map.put("d3",new Double(8.45D));
		map.put("d4",new Double(42342.4D));
		map.put("d5",new Double(111.5D));
		map.put("d6",new Double(21412.45D));
		map.put("d7",new Double(9.43D));
		
		Double d = (Double) map.get("d4");
		System.out.println(d.doubleValue());
		
	}
}

Gruß Tom
 
Hallo!

Oder du benutzt das neuste JDK (1.5 Beta) dann gehts auch ohne Wrapper.
... die Wrapper werden aber Implizit doch verwendet ;-)

so könnte man sich dann auch in JDK 5.0 das Casten sparen:

Code:
import java.util.HashMap;
import java.util.Map;

public class DoubleMap {

	public static void main(String[] args) {
		Map<String,Double> map = new HashMap<String,Double>();
		
		map.put("d1",new Double(2.4535D));
		map.put("d2",new Double(5.35D));
		map.put("d3",new Double(8.45D));
		map.put("d4",new Double(42342.4D));
		map.put("d5",new Double(111.5D));
		map.put("d6",new Double(21412.45D));
		map.put("d7",new Double(9.43D));
		
		Double d = map.get("d4");
		System.out.println(d.doubleValue());
		
	}
}

Gruß Tom
 
Original geschrieben von Thomas Darimont
Hallo!


... die Wrapper werden aber Implizit doch verwendet ;-)

so könnte man sich dann auch in JDK 5.0 das Casten sparen:

Code:
import java.util.HashMap;
import java.util.Map;

public class DoubleMap {

	public static void main(String[] args) {
		Map<String,Double> map = new HashMap<String,Double>();
		
		map.put("d1",new Double(2.4535D));
		map.put("d2",new Double(5.35D));
		map.put("d3",new Double(8.45D));
		map.put("d4",new Double(42342.4D));
		map.put("d5",new Double(111.5D));
		map.put("d6",new Double(21412.45D));
		map.put("d7",new Double(9.43D));
		
		Double d = map.get("d4");
		System.out.println(d.doubleValue());
		
	}
}


Gruß Tom

Es sollte auch follgendes möglich sein:


Code:
import java.util.HashMap;
import java.util.Map;

public class DoubleMap {

	public static void main(String[] args) {
		Map<String,Double> map = new HashMap<String,Double>();
		
		map.put("d1",2.4535D);
		map.put("d2",5.35D);
		map.put("d3",8.45D);
		
		Double d = map.get("d4");
		System.out.println(d);
		
	}
}
 
Zurück