2012-10-02 4 views
5

Ich mache das für reinen Spaß, da ich in ArrayLists erkunde. Ich weiß, wie man mit dem Modulo-Operator prüft, ob es durch 3 teilbar ist. Aber weiß, wie man es mit einer ArrayList verwendet.Finden Sie durch 3 teilbare Zahlen in einer ArrayList

public static void main(String[] args) { 

    //Print out only a set of numbers divisible by 3 from an array. 

    ArrayList<Integer> division = new ArrayList<Integer>(); 

    //Add a set of numbers. 
    Division.add(10); 
    Division.add(3); 
    Division.add(34); 
    Division.add(36); 
    Division.add(435); 
    Division.add(457); 
    Division.add(223); 
    Division.add(45); 
    Division.add(4353); 
    Division.add(99); 


    //How can I fix the logic below? 
    if(Division.get() % 3 == 0) 

} 

}

+2

Sie sollten nicht Großbuchstaben der erste Buchstabe in Variablen in Java die Namenskonvention ist in Großbuchstaben es in Klassennamen und Kleinbuchstaben es in Variablennamen sowie Methodennamen. –

Antwort

6

Sie müssen über die Elemente in Ihrer Liste Schleife zum Beispiel die für die Schleife Syntax erweitert mit:

for (int i : Division) { 
    if (i % 3 == 0) { 
     System.out.println(i + " is divisible by 3"); 
    } 
} 

Hinweis:

  • Sie sollten Wenden Sie die Java-Namenskonventionen an. Insbesondere beginnen Variablennamen in Kleinbuchstaben (außer Konstanten): Division =>division.
  • Und Ihr division Objekt ist wirklich eine Liste von Zahlen, so numbers wäre wahrscheinlich ein besserer Name.

Weitere Informationen über Listen in der Java Tutorial.

+0

Ich war so nah dran -__-. Vielen Dank. Einfach zu viele Loops da draußen und einfach nicht sicher, wann man sie benutzt. Hoffentlich werden Versuch und Irrtum lehren. – AppSensei

6
for(Integer number: division){ 
    if(number % 3 == 0){ 
    System.out.println(number); 
    } 
} 

Als Java-Namenskonvention: Nur Klassen beginnen mit einem Großbuchstaben. Variablen beginnen mit einem Kleinbuchstaben, so ist dies besser: ArrayList<Integer> division = new ArrayList<Integer>();

+0

@Simulant .. Toggled Abstimmung und +1 –

3

Zunächst einmal sollten Sie Ihre variablen Start mit Kleinbuchstaben deklarieren oder unterstreichen ..

Zweitens müssen Sie über Ihre Arraylist iterieren um es zu holen ist Element und Ihre Arraylist von Wrapper Type Integer nicht von Primitive type int sein sollte ..

ArrayList<Integer> division = new ArrayList<Integer>(); 
// Initialize your arraylist here 
for (Integer i : division) { 
    if (i % 3 == 0) { 
     System.out.println("Number : " + i + "is divisible by 3"); 
    } 
} 

in diesem blog Werfen Sie einen Blick .. Es hat breite Beispiele abdeckt, wie über List iterieren ..

5

alternativ auch eine „normale“ for-Schleife verwenden können:

for (int i = 0; i < Division.size(); i++) 
    { 
     if(Division.get(i) % 3 == 0) 
     { 
     System.out.println(Division.get(i)); 
     } 
    }