Java - ArrayList - .size () - Methode

Ich bin derzeit in den Prozess des Lernens der Programmiersprache Java, und ich brauche Hilfe zu verstehen, die size-Methode der ArrayList-Klasse. Vor der Frage, lassen Sie mich erklären, das Programm.

Dieses Programm findet den Durchschnitt der Klasse Noten.

Meine Frage wäre, über die size-Methode der ArrayList-Klasse. In der For-Schleife, der relationale Ausdruck, "ich < die Noten.size ()" wird ausgeführt "ich", bis es weniger als die Größe des Arrays. Ich wurde angewiesen, dass die Größe des Arrays ist immer eine mehr als die Anzahl der Elemente im array, also in meinem Fall, da ich 3 Elemente (Noten) in meinem array habe ich sogar ein array der Größe 4 (ähnlich wie ein string funktioniert). Beachten Sie, dass nachdem ich aus der For-Schleife, und ich bin in der Lage, angemessen zu berechnen, mein Durchschnitt mit der Größe-Methode. Ich bin verwirrt, weil, wenn die Größe des Arrays eine mehr als die Anzahl von Elementen, dann wäre es nicht nur dividieren durch 4, anstatt 3? Warum die Regeln funktionieren anders in einer For-Schleife? Danke für jeden, der bereit dazu zu beleuchten.

    import java.util.ArrayList; 


public class Chap11Part1 

    public static void main(String[] args)
    {
        double average;
        int total = 0;
        ArrayList<Integer> grades = new ArrayList<Integer>();
        grades.add(78);
        grades.add(84);
        grades.add(90);
        for(int i = 0; i < grades.size(); ++i) 
            total += grades.get(i); 
        average = total / grades.size();
        System.out.println("The average is " + average);
die Größe ist genau die gleiche wie die Anzahl der Elemente. Beachten Sie, dass Sie gezählt, beginnend bei 0, nicht 1.
die es nicht brauchen Klammern
Sie missverstehen die "Größe des array ist immer eine mehr als die Anzahl der Elemente." Es ist eigentlich eine mehr als der größte index. Wenn Sie die 3 Elemente, Sie haben eine maximale index von 2 (0, 1 und 2), die 3 einzelnen Elementen. Wenn Sie angerufen .size() auf eine solche Liste, die Sie erhalten würden 3 zurück.
RC, ich Schätze die Antwort, aber ich glaube nicht, dass würde betroffen haben meinen code. Denken Sie daran, beim Programmieren in Java, single-Anweisung-Schleifen geschrieben werden kann, ohne zu Klammern.
Bei den Kosten für das entzünden einer kleinen Flamme, Sie ist als gute Praxis (und beauftragte in verschiedenen style-guides) immer auch Hosenträger in nicht-one-liner for, while und if/then/else Blöcke... "BEARBEITEN" - one-liner interpretiert werden, wie in "kein Ende in der gleichen Zeile, in der sich die öffnung for" und nicht als "Einzel-Anweisung"

InformationsquelleAutor Jeff Sours | 2015-06-01

Schreibe einen Kommentar