array1[i] = i ;
Cheaper
- java
Hallo,
hab gerade mit Java angefangen und mal ff ausprobiert:
public class MyClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 5;
int[] array1 = new int[5] ;{
for ( int i = 0; i < array1.length; i++ ) {
System.out.println(i);
array1[i] = i ;
}
System.out.println(array1);
System.out.println(a);
}
Die Ausgabe ist nun: 0
1
2
3
4
[I@10b62c9 //statt 01234
5
Warum denn?ß
Cheaper
Hi,
int[] array1 = new int[5] ;
System.out.println(array1);
[I@10b62c9 //statt 01234
Weil array1 ein Array ([) von int (I) ist und sich an der Speicheradresse 10b62c9 (@10b62c9) befindet.
Wie kommst Du auf die Idee, daß in Java die Ausgabe einer Referenz auf int[] die aneinandergereihten Array-Werte sein könnten?
cu,
Andreas
Hi,
Weil array1 ein Array ([) von int (I) ist und sich an der Speicheradresse 10b62c9 (@10b62c9) befindet.
Also sollte es so aussehen:
int a = 5;
int[] array1 = new int[5] ;{
for ( short i = 0; i < array1.length; i++ ) {
array1[i] = i ;
System.out.println(array1[i]);
}
???
Wie kann ich denn mit einem Befehl alle Werte des Arrays ausgeben??
Cheaper
Hi,
Wie kann ich denn mit einem Befehl alle Werte des Arrays ausgeben??
Wieso meinst Du, daß dies mit einem einzigen Befehl möglich wäre/sein müßte?
cu,
Andreas
Wieso meinst Du, daß dies mit einem einzigen Befehl möglich wäre/sein müßte?
fänd ich nur logisch und einfach...
Statt jeden Wert einzeln ausgeben zu lassen einfach einmal sagen alle Werte ausgeben...
Wär doch was gutes ^^
Cheaper
Hi,
Wieso meinst Du, daß dies mit einem einzigen Befehl möglich wäre/sein müßte?
fänd ich nur logisch und einfach...
Du findest es logisch, dass ein Befehl für einen Spezialfall existiert, der neben vielen anderen gleichberechtigt existiert und zudem reichlich trivial implementiert werden kann? Also, bei mir fällt das eher in die Kategorie "absurd".
Statt jeden Wert einzeln ausgeben zu lassen einfach einmal sagen alle Werte ausgeben...
Ähm, dieser Befehl würde ebenfalls alles einzeln ausgeben lassen.
Wär doch was gutes ^^
Dann programmier's Dir doch einfach.
Cheatah
Du findest es logisch, dass ein Befehl für einen Spezialfall existiert, der neben vielen anderen gleichberechtigt existiert und zudem reichlich trivial implementiert werden kann? Also, bei mir fällt das eher in die Kategorie "absurd".
warum sollte so ein befehl nicht gleichberechtigt neben vielen anderen existieren??
Ähm, dieser Befehl würde ebenfalls alles einzeln ausgeben lassen.
Trotzdem würde es den Quelltext kürzer machen..
Dann programmier's Dir doch einfach.
Wie gesagt ich habe gerade seit ca. 2 std angefangen mich mit java zu beschäftigen...^^
Cheaper
Hi,
warum sollte so ein befehl nicht gleichberechtigt neben vielen anderen existieren??
weil es Unfug ist, Massen von Methoden prophylaktisch vorzuhalten.
Ähm, dieser Befehl würde ebenfalls alles einzeln ausgeben lassen.
Trotzdem würde es den Quelltext kürzer machen..
Um Gottfrieds Willen. Wenn's hoch kommt, ist das ein Fünfzeiler.
Dann programmier's Dir doch einfach.
Wie gesagt ich habe gerade seit ca. 2 std angefangen mich mit java zu beschäftigen...^^
Kein Grund, undurchschaubare Schnittstellen zu verlangen.
Cheatah
Hallo,
warum sollte so ein befehl nicht gleichberechtigt neben vielen anderen existieren??
weil es Unfug ist, Massen von Methoden prophylaktisch vorzuhalten.
Wir reden hier von toString(). Die Methode als solche existiert
bereits. Für Arrays ist die ohnhin irgendwie in die VM reingewurschtelt.
Eine Standardimplementierung für die primitiven Datentypen und Object
wäre hilfreich.
Über java.lang.Arrays läßt sich eine Ausgabe jedoch leicht erreichen,
so daß sich der Bedarf bei mir zumindest zwischenzeitlich in Grenzen
hält.
Trotzdem würde es den Quelltext kürzer machen..
Um Gottfrieds Willen. Wenn's hoch kommt, ist das ein Fünfzeiler.
Ein Einzeiler, wie ich bereits postete.
(Bei einer Eigenimplementierung hast du recht.)
Kein Grund, undurchschaubare Schnittstellen zu verlangen.
Die Methode toString() existiert, wie du als Java-Entwickler (IIRC)
sicherlich weißt, bereits in jedem Objekt. Die Schnittstelle ist daher
bereits vollständig vorhanden.
Gruß
Slyh
Hi,
weil es Unfug ist, Massen von Methoden prophylaktisch vorzuhalten.
Wir reden hier von toString().
wir reden von 18 (oder 37) verschiedenen toString()s, nicht von einem einzigen. Warum sollte die toString()-Methode eines zentralen Objekttypus ausgerechnet die Ausgabe besitzen, die der OP gerne hätte? Sie ist in fast allen Fällen nicht das, was gewünscht sein wird, da sich die einzelnen Elemente nicht identifizieren lassen. Selbst ein toString(String separator) wäre zweckentfremdet, weil dies eine absolut unübliche Schnittstelle wäre.
Eine Standardimplementierung für die primitiven Datentypen und Object
wäre hilfreich.
Ja, aber bitte eine andere, als hier gewünscht wurde :-)
Über java.lang.Arrays läßt sich eine Ausgabe jedoch leicht erreichen,
Es existieren bereits jetzt leichte Wege, alle Array-Elemente zu einem String zusammenzufügen, das stimmt.
Trotzdem würde es den Quelltext kürzer machen..
Um Gottfrieds Willen. Wenn's hoch kommt, ist das ein Fünfzeiler.
Ein Einzeiler, wie ich bereits postete.
(Bei einer Eigenimplementierung hast du recht.)
Eben. Wenn's hoch kommt :-)
Die Methode toString() existiert, wie du als Java-Entwickler (IIRC)
Naja, im Moment müsstest Du an hinreichend sinnvoller Stelle ein "Ex" hinzufügen.
sicherlich weißt, bereits in jedem Objekt. Die Schnittstelle ist daher
bereits vollständig vorhanden.
Die Schnittstelle ist nicht vollständig vorhanden, da Array.toString() ein anderes Ergebnis als gefordert liefert. Die Interface-Definition reicht eben nicht immer aus ;-)
Cheatah
Hi,
Die Methode toString() existiert, wie du als Java-Entwickler (IIRC)
Naja, im Moment müsstest Du an hinreichend sinnvoller Stelle ein "Ex" hinzufügen.
ExIIRC? Du kannst Dich nicht mehr dran erinnern? ;-)
cu,
Andreas
Hallo,
Du findest es logisch, dass ein Befehl für einen Spezialfall existiert, der neben vielen anderen gleichberechtigt existiert und zudem reichlich trivial implementiert werden kann? Also, bei mir fällt das eher in die Kategorie "absurd".
Du meinst also dass PHP komplett absurd ist? *scnr*
Jeena
Hi,
Du meinst also dass PHP komplett absurd ist? *scnr*
und ich habe mir einen derartigen Kommentar extra noch verkniffen ... :-)
Cheatah
Hallo,
Wie kann ich denn mit einem Befehl alle Werte des Arrays ausgeben??
Wieso meinst Du, daß dies mit einem einzigen Befehl möglich wäre/sein müßte?
Ist es doch quasi...
System.out.println(Arrays.toString(array1));
(Das geht seit Java 5.)
Vor Java 5 geht das über einen kleinen Umweg:
System.out.println(Arrays.asList(array1));
Im Übrigen ist mir auch nicht wirklich klar, wieso die toString()-Methode
von Arrays nicht überschrieben ist, um eine bessere Ausgabe ohne Aufwand
erreichen zu können..
Und, anders als hier im Thread gesagt, liefert die toString()-Methode
von Object nicht etwa eine Speicheradresse, sondern den HashCode des
Objekts im Hex-Format zurück.
Gruß
Slyh
Was ist denn hier falsch??
public class FirstTry {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long l = 123456789L;
int i = 54321;
println( l + i);
}
}
Cheaper