Java 使用自定义类的ArrayList并在不同时间设置变量

Java 使用自定义类的ArrayList并在不同时间设置变量,java,android,arraylist,Java,Android,Arraylist,我刚刚开始学习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 get

我刚刚开始学习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只左右的狗。为此,我只包含了“names”和“URL”变量,尽管实际上,我会为每个对象增加大约10个变量。我认为最好的方法是制作一个
ArrayList
。所以我设置的第一件事是URL,我在这里做:

static ArrayList<Dog> dogInfo = new ArrayList<>();
for (Element e : dogURLs) {
    Dog dog = new Dog();
    dog.setURL(e.attr("src").toString());
    dogInfo.add(dog);
}
static ArrayList dogInfo=new ArrayList();
for(元素e:dogURL){
狗=新狗();
setURL(e.attr(“src”).toString();
dogInfo.add(dog);
}
这很好,正如预期的那样。我可以通过

for (int i = 0; i<dogInfo.size(); i++){
     Log.i("DogURL", dogInfo.get(i).getURL());
}

for(int i=0;i已解决。我将其从增强型for循环更改为常规for循环,并忘记在dogname元素上使用get(index)

dogInfo.get(i).setName(dogNamesElement.get(i).text())

而不是


dogInfo.get(i).setName(dogNamesElement.text())什么是dogNamesElement..?对不起,我不想放太多不必要的代码来显示相关信息。dogNamesElement和DogURL都是从jsoup库解析的HTML页面中的元素。我已经确认它们都输出了正确的字符串,但问题是似乎setName()是我使用的for循环为ArrayList中的每个索引提供完整的名称列表,而不是每个索引1个。我认为您需要的是迭代dogNamesElement对象的集合,保留一个计数器变量,并在计数器表示的索引处更新一个Dog实例,增加它,然后移动到下一个dogNamesElement。重复直到l您的集合中没有dogNameElements或Dog对象……但很难说,因为我不知道DogNameElement中有什么。可能是因为您有许多DogNameElement中有一个单数的狗名,也可能是因为它们都在某个分隔文本中。请将您的解决方案作为答案移动,而不是将其添加到您的问题中。
for (int i = 0; i < dogInfo.size(); i++) {
    dogInfo.get(i).setName(dogNamesElement.text());
}
for (int i = 0; i<dogInfo.size(); i++){
     Log.i("DogNames", dogInfo.get(i).getName());
}