Map, basic types & Object

banshee

Bekanntes Mitglied
Hallo,

gibt es einen wesentlichen Unterschied zwischen:

Java:
long timestamp = 0;
Map<String, Object> map = new HashMap<String, Object>();
map.put("timestamp", new Long(timestamp));

und:

Java:
[...]
map.put("timestamp", timestamp);

?

Oder passiert das Obere unten sogar implizit?
 
Moin,

verstehe Deine Frage nicht wirklich 😱

Natürlich ist das unterschiedlich!
Wenn Du Variablen verwenden willst, dann musst Du sie auch vorher deklarieren!
Dabei ist es egal ob Map oder Integer ...

Wei sollte dass denn wohl implizit gehen ???:L

Gruß
Klaus
 
An und für sich, machen die beiden Sachen auf den ersten Blick das gleiche.

Java:
        long timestamp = 0;
        Map<String, Object> map1 = new HashMap<>();
        Map<String, Object> map2 = new HashMap<>();
        
        map1.put("timestamp", new Long(timestamp));
        map2.put("timestamp", timestamp);
        
        for (Map.Entry<String, Object> e : map1.entrySet()) {
            System.out.println(e.getKey() + e.getValue());
        }
        for (Map.Entry<String, Object> e : map2.entrySet()) {
            System.out.println(e.getKey() + e.getValue());
        }

Ich weiß selbst nicht genau wie tief man da rein muss, um einen unterschied festzustellen. Wenn es denn einen gibt.
 
Natürlich ist das unterschiedlich!
Wenn Du Variablen verwenden willst, dann musst Du sie auch vorher deklarieren!
Dabei ist es egal ob Map oder Integer ...
Das war Blödsinn, habe erst jetzt gerade verstanden, dass es Dir nur um das "new Long..:" ging.

Das sollte in der Tat wohl identisch sein ... kannst (und solltest) Du Dir wohl sparen !!

Gruß
Klaus
 
darf man der API vertrauen schenken, dann allokiert
Code:
map1.put("timestamp", new Long(timestamp));
einfach die Adresse des Longwerts neu. Ist also nur Mehraufwand und unnötig

[EDIT]Long(long value)
Constructs a newly allocated Long object that represents the specified long argument.[/EDIT]
 
Zuletzt bearbeitet:

Zurück
Oben