Arraylist和递归实现

-1 java arrays recursion arraylist

我试图概述函数的java递归实现,如果列表中的所有元素都是单个数字(即<10),则返回true.可以假设列表只包含正数.

这是我尝试过的,但即使列表中有2位数字,它也会保持返回true.

import java.util.*;

公共课Q3b {

static boolean allSingleDigit(ArrayList list) {
    if (list.size() == 0)
        return false;
    else {
        int first = (Integer) list.get(0);
        list.remove(0);

        if (first < 10)
            return true;
        else
            return allSingleDigit(list);
    }

}

public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList();
    Collections.addAll(list, 4, 25, 3, 2, 3, 1, 3);
    boolean res1 = allSingleDigit(new ArrayList(list));
    System.out.println("List Contains all single number" + res1);
}
Run Code Online (Sandbox Code Playgroud)

}

有什么建议吗?提前致谢.

pmc*_*avy 5

我想你可能想略微翻转逻辑,这样只有当数组中没有元素时它才会返回true;

static boolean allSingleDigit(ArrayList list) {
if (list.size() == 0)
    return true;
else {
    int first = (Integer) list.get(0);
    list.remove(0);

    if (first < 10)
        return allSingleDigit(list);
    else
        return false
}
Run Code Online (Sandbox Code Playgroud)