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个字符串值。您更新的答案非常有效,谢谢!我也认为这是正确的答案