Java 如何操作数组列表-计算机科学作业

Java 如何操作数组列表-计算机科学作业,java,arraylist,computer-science,Java,Arraylist,Computer Science,在计算机科学领域,我们目前正在研究阵列列表并对其进行操作。我在一道作业题上遇到了点麻烦 您可以在本网站上实际完成并查看作业: 我想知道为什么我的代码(见下文)不正确 问题是:数组列表包含动物列表。如果动物是猫(即动物的描述包含单词“cat”或“cat”),则将其添加到新的数组列表中。返回猫的新数组列表 然而,我会告诉你我在哪里卡住了。这是我到目前为止所拥有的(同样,关于这个问题的一点点信息可以通过上面的链接找到) public String[] catty(String[] animals) {

在计算机科学领域,我们目前正在研究阵列列表并对其进行操作。我在一道作业题上遇到了点麻烦

您可以在本网站上实际完成并查看作业:

我想知道为什么我的代码(见下文)不正确

问题是:数组列表包含动物列表。如果动物是猫(即动物的描述包含单词“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;


}
public String[]catty(String[]animals){
ArrayList animalsList=新建ArrayList();

对于(int i=0;i您正在将您的猫添加到传递到函数中的原始列表中。这是错误的。您应该创建一个新列表,将猫添加到其中并返回它,不是吗?这样做…

因此,这里缺少的一点是cattyB函数中需要一个新的ArrayList。然后您可以解析AnimalList并从那里输入名称,我到新的ArrayList。最后,我们需要将新的ArrayList与猫一起返回,而不是返回接收到的原始动物列表。这是带更正的cattyB函数。我没有对catty进行任何更改。在引用的站点上确认正确

public ArrayList<String> cattyB(ArrayList<String> animalsList) 
{
  ArrayList<String> newListWithCats = new ArrayList<String>();
  for (int i=0; i<animalsList.size(); i++)
  {
    if (animalsList.get(i).indexOf("Cat")>-1 || animalsList.get(i).indexOf("cat")>-1)
    {
      newListWithCats.add(animalsList.get(i));
    }
  }
  return newListWithCats;
}
public ArrayList cattyB(ArrayList animallist)
{
ArrayList newListWithCats=新ArrayList();
for(int i=0;i-1 | | | animallist.get(i).indexOf(“cat”)>-1)
{
newListWithCats.add(animalsList.get(i));
}
}
用猫返回新列表;
}

问题是什么?@August我想知道为什么我的代码不正确。很抱歉问题不清楚。它已被编辑。另外,请确保您在cattyB末尾有一个return语句,因为您当前在for循环中只有一个。@matthewrball您可能想告诉我们a:预期输出是什么,b:实际输出是什么是的,只是“它不起作用”不是很有帮助。请注意,codingbat网站甚至为您提供了这些信息……您可以用伪代码或简单的英语向我解释cattyB方法的作用吗?如果您可以这样做,那么我可能可以帮助您找到错误。对不起,我是一个初学者。您能帮我解决这个问题吗?这个。提示:在cattyB函数中n、 使用一个新的ArrayList,而不是向旧列表中添加更多内容。这样,只有猫/猫被添加到其中。我需要创建一个新的ArrayList吗?或者我只需要通过@AimanBOnly一种方式来发现它;-)@matthewrball是的,他们可以。但是他们正在尝试做一些更好的事情。他们试图教你如何解决这个问题。