Demander à l'utilisateur d'entrer le nombre d'éléments d'un tableau
Je suis vraiment nouveau à Java et j'ai quelques difficultés avec les principes de base des tableaux. Un peu d'aide serait grandement appréciée :).
J'ai créé un programme qui demande à l'utilisateur d'entrer des valeurs dans un tableau. Ensuite, le programme indique à l'utilisateur le nombre d'éléments dans le tableau, le même nombre que dans le tableau, les nombres impairs dans le tableau et la moyenne de tous les nombres dans le tableau.
Mon problème est le suivant: À l'heure actuelle mon programme a un certain nombre de valeurs dans le tableau de 5 éléments. Je veux changer ce qui permet à l'utilisateur de déterminer la quantité d'articles qu'ils veulent dans le tableau et demander à l'utilisateur d'ajouter en permanence de valeurs dans le tableau jusqu'à ce qu'ils enter 'Q' pour quitter la saisie des valeurs de sorte que le programme puisse continuer.
Je ne veux pas modifier mon code, juste la partie où l'utilisateur détermine le nombre d'éléments dans le tableau.
C'est mon code:
//main class
public class Even_number_array {
public static void main(String[] args) {
array_class obj=new array_class();
obj.get_numbers();
obj.set_arraylist();
obj.set_numbers();
obj.get_average_of_array();
}
}
//another class
import java.util.Scanner;
public class array_class {
private int[] arr=new int[5]; //here is where I would like to modify my code so
//that the user can determine amount of items in array
Scanner keyboard=new Scanner(System.in);
public int[] get_numbers() //asks user to add items to array
{
System.out.println("Please enter numbers for array :");
for (int i=0; i<this.arr.length; i++)
{
this.arr[i] = keyboard.nextInt();
}
System.out.println("There are "+((arr.length))+ " numbers in array");
return this.arr;
}
public void set_numbers() //Tells user what even & odd numbers are in array
{
System.out.println();
System.out.println("These even numbers were found in the array:");
for (int i=0; i<arr.length;i++)
{
if (arr[i]%2==0)
{
System.out.print(arr[i]+" ");
System.out.println();
}
}
System.out.println("These odd numbers were found in the array:");
for (int i=0; i<arr.length;i++)
{
if ((arr[i]%2)!=0)
{
System.out.print(arr[i]+" ");
}
}
}
public void set_arraylist() //Dispalys all items in array
{
System.out.println("These are the numbers currently in your array: ");
for (int i=0; i<arr.length; i++ )
{
System.out.print(this.arr[i]+ " ");
}
}
public double get_average_of_array() //Gets average of all items in array
{
double sum=0;
double average=0;
System.out.println();
System.out.println("the average is: ");
for (int i=0; i<this.arr.length; i++)
{
sum=sum+arr[i];
average =sum/arr.length;
}
System.out.println(average);
return average;
}
}
Toute aide serait super!
- Rechercher
ArrayList
- Vous ne pouvez pas modifier dynamiquement la taille d'un tableau. Vous devez créer un nouveau tableau à chaque fois que vous voulez changer la taille. Utiliser ArrayList.
- Je veux changer la cette partie de mon code de manière à ce que l'utilisateur sera en mesure de déterminer la taille du tableau, n'est-il pas possible de faire cela?
- J'ai essayé ce, merci pour l'aide 🙂
Vous devez vous connecter pour publier un commentaire.
Essayer:
Désolé je n'ai pas vraiment obtenir ce que vous demandez, mais peut-être vous voulez dire cette
Désolé, je suis assez mauvais en java seulement été en apprentissage pendant 2 mois maintenant
ArrayList
est l'objet que vous voulez. Il a des fonctions qui vous permettent d'ajouter des valeurs à la fin. C'est un tableau dynamique dans le sens que vous pouvez transformer à volonté.À l'aide d'un ArrayList au lieu des tableaux serait le moyen le plus facile d'accomplir exactement ce que vous essayez de faire.
Une autre option est de demander combien de numéros de la personne des plans sur la saisie depuis le début.
Si, pour une raison ou une autre, vous essayez seulement d'utiliser des tableaux sans demander à l'utilisateur le nombre de numéros qu'ils veulent entrer... une troisième option serait de créer un nouveau tableau (soit une taille plus grande que le tableau précédent) chaque fois que l'utilisateur accède à un autre numéro.
Quelques conseils pour le dernier morceau...
Si vous souhaitez que l'utilisateur de déterminer le nombre d'éléments dans le tableau, ajouter dans votre code:
Toutefois, vous ne serez pas en mesure d'ajouter plus d'éléments dans le tableau que définis par l'utilisateur sans obtenir de
ArrayIndexOutOfBoundsException
, donc il y a une meilleure façon de le faire qui utilise ce qu'on appelle unArrayList
. Avec unArrayList
, vous n'avez pas à vous inquiéter au sujet de la définition de la taille du tableau avant de l'utiliser; simplement, il élargit automatiquement lorsque de nouveaux éléments sont ajoutés, sauf si vous explicitement définir une taille. UnArrayList
peut être de n'importe quel objet, mais le faire seulement pour les entiers, le déclarer comme ceci:Pour ajouter des éléments à la
ArrayList
:À lire une valeur par ses index:
Pour obtenir l'index d'un élément:
Il ya beaucoup plus que vous pouvez faire avec un
ArrayList
. Lire à ce sujet ici.ArrayList<Integer> arr = new ArrayList();
va générer un avertissement "L'expression de type ArrayList besoins unchecked conversion pour se conformer à ArrayList<Integer>" ... utiliserArrayList<Integer> arr = new ArrayList<Integer>();
ou le Java 7 "diamant" d'opérateur deArrayList<Integer> arr = new ArrayList<>();
Integer
sur les deux faces, c'est redondant.