web-dev-qa-db-fra.com

Ajouter des entiers à un tableau int

J'essaie d'ajouter des entiers dans un tableau int, mais Eclipse dit:

ne peut pas appeler add (int) sur le type de tableau int []

Ce qui est complètement illogique pour moi. J'ai aussi essayé addElement() et addInt(), mais ils ne fonctionnent pas non plus.

public static void main(String[] args) {
    int[] num = new int[args.length];
    for (String s : args){
        int neki = Integer.parseInt(s);
        num.add(neki);

}
13
Rok Dolinar

Pour ajouter un élément à un tableau, vous devez utiliser le format:

array[index] = element;

array est le tableau que vous avez déclaré, index est la position où l'élément sera stocké et element est l'élément que vous souhaitez stocker dans le tableau.

Dans votre code, vous voudriez faire quelque chose comme ceci:

int[] num = new int[args.length];
for (int i = 0; i < args.length; i++) {
    int neki = Integer.parseInt(args[i]);
    num[i] = neki;
}

La méthode add() est disponible pour Collections comme List et Set. Vous pourriez l'utiliser si vous utilisiez une ArrayList (voir la documentation ), par exemple

List<Integer> num = new ArrayList<>();
for (String s : args) {
    int neki = Integer.parseInt(s);
    num.add(neki);
}
15
Anderson Vieira

Un tableau n'a pas de méthode add. Vous affectez une valeur à un élément du tableau avec num[i]=value;.

public static void main(String[] args) {
    int[] num = new int[args.length];
    for (int i=0; i < num.length; i++){
      int neki = Integer.parseInt(args[i]);
      num[i]=neki;
    }
}
5
Eran

Un tableau a une longueur fixe. Vous ne pouvez pas "ajouter" à cela. Vous définissez au début combien de temps cela durera.

int[] num = new int[5];

Cela crée un tableau d'entiers qui a 5 "compartiments". Chaque compartiment contient 1 entier. Pour commencer, tous seront 0.

num[0] = 1;
num[1] = 2;

Les deux lignes ci-dessus définissent les première et seconde valeurs du tableau sur 1 et 2. Maintenant, votre tableau ressemble à ceci:

[1,2,0,0,0]

Comme vous pouvez voir que vous y définissez des valeurs, vous ne les ajoutez pas à la fin.

Si vous voulez pouvoir créer une liste de nombres que vous ajoutez, vous devez utiliser ArrayList.

3
George

Vous ne pouvez pas utiliser la méthode add sur un tableau en Java. 

Pour ajouter des choses au tableau, faites comme ça

public static void main(String[] args) {
int[] num = new int[args.length];
for (int i = 0; i < args.length; i++){
    int neki = Integer.parseInt(s);
    num[i] = neki;

}

Si vous voulez vraiment utiliser une méthode add (), envisagez d'utiliser plutôt un ArrayList<Integer>. Cela présente plusieurs avantages - par exemple, il n'est pas limité à une taille maximale définie lors de la création. Vous pouvez continuer à ajouter des éléments indéfiniment. Cependant, il n’est pas aussi rapide qu’un tableau, alors si vous voulez vraiment que les performances restent avec le tableau. De plus, vous devez utiliser l'objet Integer au lieu de types primitifs int, ce qui peut poser problème. 

Exemple de tableau

public static void main(String[] args) {
    ArrayList<Integer> num = new ArrayList<Integer>();
    for (String s : args){
        Integer neki = new Integer(Integer.parseInt(s));
        num.add(s);
}
2
Davis Broda

Les tableaux sont différents de ArrayLists, sur lesquels vous pouvez appeler add. Vous aurez d'abord besoin d'un index. Déclarez i avant la boucle for. Ensuite, vous pouvez utiliser une expression d'accès au tableau pour affecter l'élément au tableau. 

num[i] = s;
i++;
1
rgettman

vous avez un tableau de int qui est un type primitif, le type primitif n'a pas la méthode add. Vous devriez chercher Collections.

0
Rafael Reis