在Java中,可以使用遞歸的方式來獲取下級所有children ID。以下是一個示例代碼:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<Integer, List<Integer>> childrenMap = new HashMap<>();
childrenMap.put(1, List.of(2, 3));
childrenMap.put(2, List.of(4, 5));
childrenMap.put(3, List.of(6, 7));
List<Integer> childrenIds = getChildrenIds(childrenMap, 1);
System.out.println(childrenIds);
}
public static List<Integer> getChildrenIds(Map<Integer, List<Integer>> childrenMap, int parentId) {
List<Integer> childrenIds = new ArrayList<>();
List<Integer> children = childrenMap.get(parentId);
if (children != null) {
for (int childId : children) {
childrenIds.add(childId);
childrenIds.addAll(getChildrenIds(childrenMap, childId));
}
}
return childrenIds;
}
}
在上面的示例中,我們使用一個Map<Integer, List<Integer>>
來表示父級和子級之間的關系。getChildrenIds
方法使用遞歸的方式來獲取下級所有children ID。在每次迭代中,我們將當前子級的ID添加到結果列表中,并繼續遞歸調用以獲取該子級的下級ID。最后,返回所有children ID的列表。
在示例中,我們使用childrenMap
來表示以下關系:
輸出結果為:[2, 4, 5, 3, 6, 7]
,表示1的所有下級ID為2、4、5、3、6和7。