Android 如何在数组的add方法中添加多个值?

Android 如何在数组的add方法中添加多个值?,android,arrays,arraylist,Android,Arrays,Arraylist,我试图向数组中添加多个值,但它返回一个无法解决的错误。这附近有什么办法或工作吗 for (Map.Entry<String,String> entry : hash.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if(typePHP.equals("TARGET")) { message +

我试图向数组中添加多个值,但它返回一个无法解决的错误。这附近有什么办法或工作吗

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.
    }
错误如下:无法解析方法“addint,java.lang.String,java.lang.String,java.lang.String”

我需要一个元素一次存储4个值,并具有类似{109,40,TYPE,GAME}的输出


以这种方式使用addAll:

array.addAll(Arrays.asList( key,value,typePHP,gamePHP) );    
更新: 你需要一个2d数组,根据这句话,我需要一个元素一次存储4个值,并有一个像{109,40,TYPE,GAME}这样的输出

那么,试试这个:

    ArrayList<ArrayList<String>> array2d = new ArrayList<>();
    array2d.add(new ArrayList<String>() {{
        add("109");
        add("40");
        add("TYPE");
        add("GAME");
    }});
在您的情况下,应该有如下内容:

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

以这种方式使用addAll:

array.addAll(Arrays.asList( key,value,typePHP,gamePHP) );    
更新: 你需要一个2d数组,根据这句话,我需要一个元素一次存储4个值,并有一个像{109,40,TYPE,GAME}这样的输出

那么,试试这个:

    ArrayList<ArrayList<String>> array2d = new ArrayList<>();
    array2d.add(new ArrayList<String>() {{
        add("109");
        add("40");
        add("TYPE");
        add("GAME");
    }});
在您的情况下,应该有如下内容:

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

首先,确保ArrayList当前正在存储一个构造函数为字符串a、字符串b、字符串c的对象。当您调用array.addnew Itema、b、c时,Java需要将其与现有方法相匹配

public class Item {
public Item(String a, String b, String c) {
        // initialize your object's variables here in the constructor
    }

}
然后,在使用add创建新对象时,必须使用new

array.add(new Item(a, b, c));
从Java中可以看到这一点:


Oracle关于构造函数的引用:

首先,确保ArrayList当前存储的对象的构造函数为字符串a、字符串b、字符串c。当您调用array.addnew Itema、b、c时,Java需要将其与现有方法相匹配

public class Item {
public Item(String a, String b, String c) {
        // initialize your object's variables here in the constructor
    }

}
然后,在使用add创建新对象时,必须使用new

array.add(new Item(a, b, c));
从Java中可以看到这一点:


Oracle关于构造函数的引用:

您可以创建您选择的自定义对象

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;
    }
}
现在你可以用like

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

您可以创建所选成员的自定义对象

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;
    }
}
现在你可以用like

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

请发布完整的错误日志请再次检查@fartab您发布的错误说明数组没有add方法。数组的类型是什么?请提及其声明。ArrayList array=new ArrayList@Fartab,我可以向它添加值,但我一次只能添加1个值,我需要一次添加4个值。您需要使用“推送”,例如:array.pushitem1,item2,…,itemX,add方法不起作用请发布完整的错误日志请再次检查@Fartab您发布的错误说明数组没有add方法。数组的类型是什么?请提及其声明。ArrayList array=new ArrayList@Fartab,我可以向它添加值,但我一次只能添加1个值,我需要一次添加4个值。您需要使用“push”,例如:array.pushitem1,item2,…,itemX,add方法不起作用此方法将其作为单个元素返回,我需要它在1个元素中一次只包含4个字符串值。我已更新解决方案,使其在1个元素中一次包含4个字符串值。您更新的答案非常有效,谢谢!我还接受了正确答案这将作为单个元素返回,我需要它在一个元素中一次仅包含4个字符串值。我已更新解决方案,使其在一个元素中一次包含4个字符串值。您更新的答案非常有效,谢谢!我也认为这是正确的答案