2012-10-02 73 views
5

Estoy haciendo esto por pura diversión ya que estoy explorando en ArrayLists. Sé cómo usar el operador de módulo para verificar si es divisible por 3. Pero, tengo la pista de cómo usarlo con un arrayList.Encontrar números divisibles por 3 en una 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

no debe mayúscula la primera letra de las variables, en Java el convenio de denominación es a mayúsculas en los nombres de clases y menor caso en nombres de variables, así como nombres de métodos. –

Respuesta

6

Necesitas bucle sobre los elementos de la lista, por ejemplo, mediante el aumento de la sintaxis del bucle:

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

Nota:

  • Usted debe aplicar las convenciones de nomenclatura java. En particular, los nombres de las variables comienzan en minúsculas (aparte de las constantes): Division =>division.
  • Y su objeto division es realmente una lista de números, por lo que numbers sería probablemente un nombre mejor.

Más información sobre las listas en el Java Tutorial.

+0

Estaba tan cerca de este -__-. Gracias. Hay demasiados bucles y no estoy seguro de cuándo usarlos. Con suerte, Trial and Error enseñará. – AppSensei

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

Como convención de nomenclatura de Java: Sólo clases comienzan con una letra mayúscula. Las variables comienzan con una letra minúscula, por lo que este es mejor: ArrayList<Integer> division = new ArrayList<Integer>();

+0

@Simulant .. Voto alternante y +1 –

3

En primer lugar, debe declarar su partida variable, con el alfabeto en minúsculas o un guión ..

En segundo lugar usted necesita para iterar sobre su ArrayList a buscar es el elemento y su ArrayList debe ser de Wrapper Type Entero no de Primitive type int ..

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"); 
    } 
} 

Tome un vistazo a este blog .. tiene ejemplos de ancho que cubre la forma de repetición sobre List ..

5

Como alternativa, también puede utilizar un "normal" para bucle:

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