我的返回类型应该正确,但是Intelli-J说错了吗?需要ArrayList <ArrayList <Card >>,找到布尔值

我正在(基本上)在编写一种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;
}
jayxh314 回答:我的返回类型应该正确,但是Intelli-J说错了吗?需要ArrayList <ArrayList <Card >>,找到布尔值

您将返回toReturn.add(from);,该布尔值返回布尔值,而不是列表。
我想您应该执行以下操作:

toReturn.add(from);
return toReturn;
,

那是因为,请阅读阵列列表上的API文档。您必须返回列表,添加return布尔值以告诉您是否成功插入列表

https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(E)
本文链接:https://www.f2er.com/3106161.html

大家都在问