我刚刚进入Java和编程。
我有班级狗:
public class Dog {
String name;
String URL;
public Dog(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getURL() {
return URL;
}
public void setURL(String URL) {
this.URL = URL;
}
}
我想要总共300只狗。为此,我只包括&#34;名称&#34;和&#34; URL&#34;变量,虽然实际上,每个对象我还有大约10个变量。我认为与他们合作的最佳方式是制作ArrayList<Dog>
。所以我设置的第一件事就是URL,我在这里做的是:
static ArrayList<Dog> dogInfo = new ArrayList<>();
for (Element e : dogURLs) {
Dog dog = new Dog();
dog.setURL(e.attr("src").toString());
dogInfo.add(dog);
}
这正常并且符合预期。我可以通过
获取每个URLfor (int i = 0; i<dogInfo.size(); i++){
Log.i("DogURL", dogInfo.get(i).getURL());
}
但是当我尝试添加下一个名字时,我遇到了问题。我的思维过程是对象已经添加到ArrayList中,所以我只需要使用名称setter而不是向ArrayList添加新元素:
for (int i = 0; i < dogInfo.size(); i++) {
dogInfo.get(i).setName(dogNamesElement.text());
}
但是在执行此操作并打印到日志时,似乎ArrayList中的每个元素都包含整个名称列表。
for (int i = 0; i<dogInfo.size(); i++){
Log.i("DogNames", dogInfo.get(i).getName());
}
你能告诉我我做错了什么吗?另外,这是处理这样的数据的最佳方法吗?我很新,所以如果我这样做的方式不是最优的,请在进一步说明之前告诉我。
答案 0 :(得分:0)
解决。我将它从增强的for循环更改为常规for循环,并忘记在dogNameElement上使用get(index)。
dogInfo.get(ⅰ).setName(dogNamesElement.get(ⅰ)的.text());
而不是
dogInfo.get(ⅰ).setName(dogNamesElement.text());