比如说给一个这样的字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 要求取字符串的最里面的一层的list的所有数据也就是121314并且不能用String的方法用java写注意list层数是变化的
可以使用递归的方式来实现。从最外层开始遍历,如果当前元素是一个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 著作权归作者所有。请勿转载和采集!