J'essaie d'ajouter plusieurs valeurs à un tableau, mais cela renvoie une erreur ne peut pas résoudre. Y a-t-il un moyen ou un contournement ici?
for (Map.Entry<String,String> entry : hash.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if(typePHP.equals("TARGET")) { message += key + " " + value + "t\n"; }else { message += key + " " + value + "r\n"; } array.add(Integer.parseInt(key),value,typePHP,gamePHP); //Heres the error. }
Voici l'erreur: Impossible de résoudre la méthode 'add (int, java.lang.String, java.lang.String, java. lang.String) '
J'ai besoin de l'élément unique pour stocker 4 valeurs à la fois et avoir une sortie comme {109,40, TYPE, GAME};
3 Réponses :
utilisez addAll de cette manière:
ArrayList<ArrayList<String>> array2d = new ArrayList<>(); for (Map.Entry<String,String> entry : hash.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if(typePHP.equals("TARGET")) { message += key + " " + value + "t\n"; }else { message += key + " " + value + "r\n"; } array2d.add(new ArrayList<String>() {{ add(key); add(value); add(typePHP); add(gamePHP); }}); }
MISE À JOUR :
Vous avez besoin d'un tableau 2D, basé sur cette phrase J'ai besoin de l'élément unique pour stocker 4 valeurs à la fois et avoir une sortie comme {109,40, TYPE, GAME};
Alors, essayez ceci:
ArrayList<ArrayList<String>> array2d = new ArrayList<>(); array2d.add(new ArrayList<String>() {{ add("109"); add("40"); add("TYPE"); add("GAME"); }});
Dans votre cas, il devrait y avoir quelque chose comme ceci:
array.addAll(Arrays.asList( key,value,typePHP,gamePHP) );
Cela le renvoie comme un élément unique, j'en ai besoin pour ne contenir que 4 valeurs de chaîne à la fois dans 1 élément.
J'ai mis à jour la solution pour contenir 4 valeurs de chaîne à la fois dans 1 élément
Votre réponse mise à jour fonctionne parfaitement, merci! Je l'ai également accepté comme bonne réponse
Tout d'abord, assurez-vous que votre ArrayList stocke actuellement un objet avec un constructeur de (String a, String b, String c). Lorsque vous appelez array.add (new Item (a, b, c), Java doit faire correspondre cela à une méthode existante.
array.add(new Item(a, b, c));
Ensuite, vous devez utiliser new lorsque vous créez un nouvel objet utilisant add ().
public class Item { public Item(String a, String b, String c) { // initialize your object's variables here in the constructor } }
Voir ceci depuis Java: Ajout de nouveaux objets à une ArrayList à l'aide d'un constructeur
Et cette référence d'Oracle sur les constructeurs: https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html a >
Vous pouvez créer l'objet personnalisé de votre choix membre
ArrayList<Item> itemArray = new ArrayList <>(); for (Map.Entry<String,String> entry : hash.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if(typePHP.equals("TARGET")) { message += key + " " + value + "t\n"; }else { message += key + " " + value + "r\n"; } itemArray.add(new Item(Integer.parseInt(key),value,typePHP,gamePHP)); }
Vous pouvez maintenant utiliser comme
public class Item { private int key; private String value; private String typePHP; private String gamePHP; public Item(int key, String value, String typePHP, String gamePHP) { this.key = key; this.value = value; this.typePHP = typePHP; this.gamePHP = gamePHP; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getTypePHP() { return typePHP; } public void setTypePHP(String typePHP) { this.typePHP = typePHP; } public String getGamePHP() { return gamePHP; } public void setGamePHP(String gamePHP) { this.gamePHP = gamePHP; } }
veuillez publier le journal des erreurs complet
veuillez vérifier à nouveau @Fartab
L'erreur que vous avez publiée indique que
array
n'a pas de méthodeadd
. quel est le type dearray
? veuillez mentionner sa déclaration.ArrayList array = new ArrayList <> ();
@Fartab, je peux y ajouter des valeurs mais je ne peux ajouter qu'une valeur à la fois, j'ai besoin que ce soit 4 valeurs à la fois.vous devez utiliser 'push', comme: array.push (item1, item2, ..., itemX), la méthode add ne fonctionne pas
Il n'y a pas de méthode push pour ça @ sultan95
utiliser la méthode
addAll
Il vous suffit d'appeler la méthode
add
4 fois ou vous pouvez utiliseraddAll
quel est le type de
tableau
? Votre exigence est un obj personnalisé afin que vous puissiez créer un objet personnalisé et le stocker dans arrayList