2017-10-20 33 views
2

Ceci est ma question de devoirs: "Créer une méthode appelée roundAllUp(), qui prend un tableau de doubles et retourne un nouveau tableau d'entiers.Ce tableau retourné contient tous les nombres du tableau de doubles, mais arrondi."Comment convertir un tableau de doubles en un tableau d'entiers en Java?

Voici la méthode que j'ai jusqu'à présent:

public static int[] roundUp(double[] array2){ 
    for(int i = 0; i < array2.length; i++){ 
     Math.ceil(array2[i]); 
    } 
} 

Une fois que les valeurs sont arrondies à partir du tableau de doubles, comment puis-je les retourner dans un tableau d'entiers?

Répondre

5

Vous êtes proche, vous devez créer un nouveau tableau de int (s) et affectez le résultat de vos appels Math.ceil (avec une distribution appropriée). Comme,

public static int[] roundUp(double[] array2) { 
    int[] arr = new int[array2.length]; 
    for (int i = 0; i < array2.length; i++) { 
     arr[i] = (int) Math.ceil(array2[i]); 
    } 
    return arr; 
} 

Si vous utilisez Java 8+, vous pouvez également utiliser un DoubleStream et mapper chaque élément à un int avant de se convertir à un tableau en une ligne. Comme,

public static int[] roundUp2(double[] array2) { 
    return DoubleStream.of(array2).mapToInt(d -> (int) Math.ceil(d)).toArray(); 
} 
0

Je crois que simple coulée fera l'affaire à ce stade: (int) Math.ceil(array2[i]) est la représentation arrondie int de array2[i]. De là, vous devez simplement affecter ces int à un tableau int (int[]) et le renvoyer.