在计算机科学领域,我们目前正在研究ArrayLists并对其进行操作。我在一项家庭作业问题上遇到了麻烦。

您实际上可以在此网站here上查看作业:

我想知道为什么我的代码(在下面找到)不正确。

问题是:数组列表包含动物列表。如果动物是猫(即动物的描述中包含单词“ cat”或“ Cat”),则将其添加到新的数组列表中。返回新的猫数组列表。

但是,我将向您展示我被困住的地方。

public String[] catty(String[] animals) {

    ArrayList<String> animalsList = new ArrayList<String>();
    for (int i=0; i<animals.length; i++)
    {
       animalsList.add(animals[i]);
    }

    ArrayList<String> catsList = cattyB(animalsList);

    String cats[] = new String[catsList.size()];
    for (int i=0; i<catsList.size(); i++)
    {
       cats[i]=catsList.get(i);
    }

    return cats;
}

public ArrayList<String> cattyB(ArrayList<String> animalsList)
{
  for (int i=0; i<animalsList.size(); i++)
  {
    if (animalsList.get(i).indexOf("Cat")>-1 || animalsList.get(i).indexOf("cat")>-1)
    {
      animalsList.add(animalsList.get(i));
    }
    return animalsList;
  }
  return animalsList;


}

最佳答案

您正在将猫添加到传递给函数的原始列表中。错了您应该创建一个新的猫,将猫添加到猫中然后归还,不是吗?去做 ...

09-10 13:18