fragen zu arrays

lennero

Bekanntes Mitglied
hallo. wir haben mit arrays angefangen und kleine programme geschrieben, nichts besonders schweres allerdings habe ich trotzdem noch ein paar verständnisprobleme. wir sollten bei folgendem code ein array der länge 50 erzeugen, mit den werten i=i^4 und es einmal vorwärts und einmal rückwärts ausgeben lassen. so sieht das ganze aus, funktioniert auch allerdings verstehe ich das attribut length nicht ganz. ist a.length in meinem fall nicht einfach die zahl 50 ? dann könnte ich doch statt a.length auch 50 als bedingungen in den schleifen einstellen oder nicht ? wäre dankbar wenn jemand sich die zeit nehmen würde einem anfänger zu helfen.
Java:
class array{
    public static void main(String[]args){
       
        int [] a;
       
        a = new int [50];
       
        for (int i=0; i<a.length;i++)
            a[i]=(int)Math.pow(i,4);
       
        for (int i=0;i<a.length;i++)
            System.out.println(a[i]);
       
            System.out.println();
           
        for (int i=a.length-1; i>=0; i--)
                a[i]=(int)Math.pow(i,4);
           
        for (int i=a.length-1; i>=0;i--)
                System.out.println(a[i]);
       
    }
}
 

VirtualIndex

Aktives Mitglied
Das Attribut length von Arrays gibt die Länge zurück. Nun stell dir vor du willst statt 50 Zahlen nun 100 Zahlen im Array speichern. Dann musst du, wenn du statt length die Zahl 50 verwendest, mindestens zweimal was ändern: einmal beim Initialisieren des Arrays und einmal in der Schleife.

Bezüglich der Länge: Die Länge ist 50, aber nicht die Zahl 50. Es wird nach dem US-System gezählt: dort wird bei 0 begonnen. 0 bis 49 sind 50 Zahlen. 0 bis 50 wären 51 Zahlen ;).
 

strußi

Top Contributor
length gibt die anzahl der Felder zurück in deinem Fall 50, und du kannst auch 50 eingeben, musst aber, wenn du den array auf z.b. 100 aufbläst, auch überall die 50 durch 100 ersetzten. wenn du mit .length arbeitest, änderst du nur die anzahl der felder, und der rest vom Code bleibt wie er ist, Stichwort Wiederverwendbarkeit.

ich empfehle dir, die Anweisung innerhalb der for-schleife generell in geschweifte Klammern zu setzen, das erhöht die Lesbarkeit.

EDIT: war zu langsam, zwei intelligente ein gedanke ;-)
 
K

kneitzel

Gast
Hi,

ja, wenn die Länger 50 ist, dann ist a.length auch 50. Das könnte man also ersetzten. Aber was ist, wenn Du das jetzt ändern willst auf 100? Dann musst Du alle 50er suchen, die Du jetzt verändern musst. Das ist zum einen umständlich und zum anderen wäre dies eine blöde Fehlermöglichkeit.

Also ist es besser, hier a.length zu verwenden. Dann musst Du nur an einer Stelle etwas anpassen und gut ist es.

Konrad
 

Joose

Top Contributor
Bezüglich der Länge: Die Länge ist 50, aber nicht die Zahl 50. Es wird nach dem US-System gezählt: dort wird bei 0 begonnen. 0 bis 49 sind 50 Zahlen. 0 bis 50 wären 51 Zahlen ;).

Ja die Länge hat den Wert 50 (entspricht natürlich der Zahl 50) ;)
Was du meinst ist der höchst mögliche Index von diesem Array, dieser kann wie du schon sagst nur 49 sein.
Hat aber eher weniger was mit einem US-System zu tun ;)
Kommt einfach daher da es so in C auch war und C hat es einfach daher da der Index nur den Offset im Memory angibt fürs erste Item ist dieser eben 0.
 

VfL_Freak

Top Contributor
Moin,
Jungs, wo steht denn was davon, dass es auf 100 erweitert werden soll ??
wir sollten bei folgendem code ein array der länge 50 erzeugen, mit den werten i=i^4 und es einmal vorwärts und einmal rückwärts ausgeben lassen
IMHO einmal füllen (das sollte auch so klappen), und dann einmal vorwärts und anschließend rückwarts ausgeben (sollte auch mit der 2. und 4. Schleife klappen).

Aber die dritte ist überflüssig und sogar falsch, weil hier ja zunächst die Werte in a neu gesetzt werden !!

for
(int i=a.length-1; i>=0; i--)
a[i]=(int)Math.pow(i,4);

Gruß Klaus
 

VirtualIndex

Aktives Mitglied
Jungs, wo steht denn was davon, dass es auf 100 erweitert werden soll ??

Nirgendwo, aber es war ja auch nur als Beispiel gedacht. Man soll ja das Prinzip der Wiederverwendbarkeit verstehen und anwenden. Klar, oft geht vieles, aber allgemein gesprochen ist eben nur bestimmtes sinnvoll.

Hat aber eher weniger was mit einem US-System zu tun ;)
Kommt einfach daher da es so in C auch war und C hat es einfach daher da der Index nur den Offset im Memory angibt fürs erste Item ist dieser eben 0.

Hm, klingt auch gut. Meins habe ich so zumindest gelernt und auch von mehreren Quellen so erfahren. Vielleicht ist es ein Mix aus beidem (geschichtlich und logisch), aber deine Erklärung gefällt mir auch gut :D.

Und zu meiner length-Erklärung - deine Ergänzung ist glaube ich für das Verständnis meines Textes sehr hilfreich. Ich bin gerade erst nach Hause gekommen und wollte kurz helfen ... wie es eben immer so ist ;).
 
K

kneitzel

Gast
Klaus: Die Frage war, wieso da dann nicht statt a.length einfach 50 schreibt. Und das habe ich anhand eines Beispiels versucht zu beantworten. Nur durch das bringen eines Beispiels wird doch nicht behauptet, dass das Beispiel umgesetzt werden soll.

Und selbst in der Definition des Arrays ist diese "magische Nummer" schon umstritten. Wenn man hier eine Konstante benötigt, dann bitte auch über eine entsprechende Konstante. Sprich: ein public static final SIZE_ARRAY = 50; oder so und dann diese Konstante entsprechend verwenden. Das Ziel sollte halt immer Clean Code sein.

Konrad
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
B fragen zur for-schleife und arrays Java Basics - Anfänger-Themen 8
L Erste Schritte Fragen zu Arrays, Inkrement Operatoren, Dekrement Operatoren ? Java Basics - Anfänger-Themen 9
S Datentypen Fragen zu Arrays Java Basics - Anfänger-Themen 31
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
J Fragen zum Thema Arrays Java Basics - Anfänger-Themen 5
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21
P Methoden Aquarium (Fragen zum Scanner) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben