Das -1L sagt aus du du einen
LONG wert hast, das ist deutlich konkreter als -1. Auch wenn es im Kontext hier überflüssig erscheinen mag.
Du drückst dich auch hier genauer aus. Bei Mathematischen Berechnungen kann es sonst sein das der Compiler statt long nur den int benutzt und du somit falsche Ergebnisse bekommst. (Ich kann das gerade nicht konkreter darstellen).
PHP hat assoziative Arrays, das sind in Java z.b HashMap bzw. HashTable und einer reihe weiterer.
1HashMap map = new HashMap();
Besser ist sowas:
1Map map = new HashMap();
Hier ist map das Interface, da z.b HashMap und HashTable beide das Interface Implementieren hast du die Möglichkeit später noch zu wechseln.
Jetzt fragst du dich vielleicht wieso sollte man etwas wechseln, nun dafür mag es vielerlei Gründe geben. Einer wäre z.b das du ein SortedMap haben willst.
Die Javadoc erklärt das schon ganz gut:
A map that further guarantees that it will be in ascending key order, sorted according to the natural ordering of its keys (see the Comparable interface), or by a comparator provided at sorted map creation time
.
SortedMap ist auch nur eine Map! Also um hier nicht komplett abzuschweifen, es ist meist besser gegen ein Interface zu Programmieren als gegen eine konkrete Klasse wie HashMap.
Und noch etwas, was den Code deutlich lesbarer macht, was in PHP so meine Ich nicht existiert da PHP Dynamische Typen hat (nennt man das so ?)
1Map<String,String> map = new HashMap<String,String>();
In den <> stehen die Typen für des Key bzw Value. Damit ersparst du dir das was bei PHP eher nicht vorkommt, das casten. Ein cast ist sowas:
1EinTyp typ = (EinTyp) map.get(Schlüssel);
Mittels Nutzung der Generics, ist das überflüssig, lege einfach fest was in der Map enthalten sein soll:
1Map<String,EinTyp> map = new HashMap<String,EinTyp>();
2...
3EinTyp typ = map.get(Schlüssel);
Der Compiler prüft so etwas vor dem Kompilieren, daher bist du auf der sicheren Seite. Du kannst auch nicht falsche Objekt-Typen in eine Map stecken!
hth,
Mac
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV