2015-01-07 2 views
0

В области компьютерных наук мы в настоящее время работаем над ArrayLists и манипулируем ими. Я столкнулся с небольшими проблемами по одной из проблем, связанных с домашней работой.Как манипулировать списками массивов - домашнее задание по компьютерным наукам

Вы на самом деле можно делать и просматривать домашние задания на этом сайте here:

Я хотел бы знать, почему мой код (находится ниже) не является правильным.

Проблема в следующем: список массивов содержит список животных. Если животное является кошкой (то есть, в описании животного содержится слово «кошка» или «кошка»), затем добавьте его в новый список массивов. Верните новый список кошек.

Однако я покажу вам, где я stuck.This то, что я до сих пор (опять же, маленький кусочек информации о проблеме можно найти по ссылке выше.

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; 


} 
+0

В чем вопрос? – August

+0

@ Август Я хочу знать, почему мой код неправильный. Извините, что вопрос непонятен. Он был отредактирован. – matthewrball

+0

'cattyB' не создает новый' List' и добавляет 'Cat' к нему ... – MadProgrammer

ответ

2

Вы добавляете ваши кошки в исходный список вошли в функцию. Это неправильно. Вы должны создать новую, добавить кошек в нее и вернуть ее, не так ли? Делайте это ...

+0

Извините, я очень новичок. Не могли бы вы мне помочь? – matthewrball

+1

Я думал, что просто сделал ... – Dima

+0

Это. Подсказка: в функции cattyB используйте новый ArrayList вместо добавления большего количества в старый список. Так что в него добавляются только кошки/кошки. – AimanB

0

Так что один отсутствует здесь было указано, что в функции cattyB необходим новый ArrayList. Затем вы можете разобрать animalList и поместить имена оттуда в новый ArrayList. Наконец, вместо возврата оригинала a nimalsList, который был взят, нам нужно вернуть наш новый ArrayList с кошками. Вот функция cattyB с исправлениями. Я не внес никаких изменений в catty. Подтверждено правильно на сайте OP.

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; 
} 
Смежные вопросы