Я пытаюсь написать рекурсивный метод рекомендовать друзьям, как написано здесьРекурсивный метод рекомендовать друзьям
Мы будем принимать подход рекомендации всех наших друзей друзей и наших друзей друзей друзей , и так далее. Это прекрасная возможность использовать рекурсию - мы можем создать метод getRecommendations, который использует FacebookUser как аргумент. Метод должен возвращать ArrayList, который содержит всех друзей FacebookUser, который передается в него, а также результат вызова того же метода getRecommendations на всех этих друзей FacebookUser. Будьте внимательны, чтобы не добавлять кого-либо в список рекомендаций, если они уже на нем, что может привести к бесконечному циклу.
Мой код до сих пор:
ArrayList<FacebookUser> getRecommendations(FacebookUser example) {
for (FacebookUser u : example.getFriends()) {
if (recommendations.contains(u)) {
return recommendations;
} else {
recommendations.add(u);
for (FacebookUser a : recommendations) {
getRecommendations(a);
}
}
}
return recommendations;
}
recommendations
является ArrayList:
ArrayList<FacebookUser> recommendations = new ArrayList<>();
И мой getFriends()
метод здесь:
ArrayList<FacebookUser> getFriends() {
@SuppressWarnings("unchecked")
ArrayList<FacebookUser> clone = (ArrayList<FacebookUser>) friends
.clone();
return clone;
}
Может кто-то дать мне правильный getRecommendations()
метод использовать или указать, что не так с моим методом?
Я вернул его? Я не понимаю, что вы говорите о – shishi
Я пытался добавить дополнительную информацию, я думаю, что редактировал ее в то же время, что и вы, извините. – shishi
Я вроде как здесь. Спасибо за исправление моего сообщения в любом случае – shishi