将一组对象组织成属性结构,以表示一种“部分 - 整体”的层次结构

    1. public class FileSystemNode {
    2. private String path;
    3. private boolean isFile;
    4. private List<FileSystemNode> subNodes = new ArrayList<>();
    5. public FileSystemNode(String path, boolean isFile) {
    6. this.path = path;
    7. this.isFile = isFile;
    8. }
    9. public String getPath() {
    10. return path;
    11. }
    12. public void addSubNode(FileSystemNode fileOrDir) {
    13. subNodes.add(fileOrDir);
    14. }
    15. public void removeSubNode(FileSystemNode fileOrDir) {
    16. int size = subNodes.size();
    17. int i = 0;
    18. for (; i < size; ++i) {
    19. if (subNodes.get(i).getPath().equalsIgnoreCase(fileOrDir.getPath())) {
    20. break;
    21. }
    22. }
    23. if (i < size) {
    24. subNodes.remove(i);
    25. }
    26. }
    27. }