可以使用递归的方式来实现。从最外层开始遍历,如果当前元素是一个list,则继续递归,否则就是一个数字,可以将它存储起来。在递归的过程中可以用一个变量来记录当前层数,如果到达了最里面的一层,则将该层的所有数字存储起来。

Java代码如下:

public static List<Integer> getInnermostList(List<Object> list) {
    List<Integer> result = new ArrayList<>();
    getInnermostList(list, 0, result);
    return result;
}

private static void getInnermostList(List<Object> list, int level, List<Integer> result) {
    for (Object obj : list) {
        if (obj instanceof List) {
            getInnermostList((List<Object>) obj, level + 1, result);
        } else {
            if (level == 2) {
                result.add((Integer) obj);
            }
        }
    }
}

使用方法:

List<Object> list = Arrays.asList(
        Arrays.asList(1, 2, 3),
        Arrays.asList(4, 5, Arrays.asList(6, 7), 8),
        Arrays.asList(9, Arrays.asList(10, 11, Arrays.asList(12, 13, 14)))
);
List<Integer> result = getInnermostList(list);
System.out.println(result); // [12, 13, 14]

原文地址: https://www.cveoy.top/t/topic/br7F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录