我正在(基本上)在编写一种N选择R方法,该方法应返回可能组合的列表。 Intelli-J告诉我我要添加ArrayList的ArrayList表示它在第一个if语句中返回布尔类型。在接下来的几条语句中,我正在做同样的事情,但并不表明我在那里有任何错误。这是我的代码(我的递归现在可能现在是错误的,但是在修复此错误之前,我无法测试我的methof):
private ArrayList<ArrayList<Card>> choose(ArrayList<Card> from,int howMany)
{
ArrayList<ArrayList<Card>> toReturn = new ArrayList<ArrayList<Card>>();
if (from.size() == howMany)
{
return toReturn.add(from);
}
else if (howMany == 1)
{
for (int i = 0; i < from.size() -1; i++)
{
ArrayList<Card> oneCardList = new ArrayList<Card>();
Card card = from.get(i);
oneCardList.add(card);
toReturn.add(oneCardList);
}
return toReturn;
}
for (Card card : from) {
Card first = card;
ArrayList<Card> theRest = new ArrayList<Card>(from.subList(1,from.size() - 1));
toReturn.add(theRest);
ArrayList<ArrayList<Card>> chooseRest = choose(theRest,howMany);
}
return toReturn;
}