Java 如何存储文件结构类型的数据以便于检索和插入

Java 如何存储文件结构类型的数据以便于检索和插入,java,data-structures,tree,Java,Data Structures,Tree,我想以分层格式存储数据,如/a/b/c 插入操作是 插入/a/b/c/d1 20(其中20为d1的尺寸) 插入/a/b/c/d2 30(其中30为d2尺寸) 插入/a/b/c 50(其中50为c本身的尺寸) 插入/a/b/x 40(其中40为x的尺寸) 检索操作是 获取/a/b/c的大小应返回100(20+30+50)。 获取大小/a/b应返回140(所有子项的大小为20+30+50+40) 如果可以用java实现,效果会更好。您可以使用HashMap,如下所示: public class Te

我想以分层格式存储数据,如/a/b/c

插入操作是

插入/a/b/c/d1 20(其中20为d1的尺寸) 插入/a/b/c/d2 30(其中30为d2尺寸) 插入/a/b/c 50(其中50为c本身的尺寸) 插入/a/b/x 40(其中40为x的尺寸)

检索操作是

获取/a/b/c的大小应返回100(20+30+50)。 获取大小/a/b应返回140(所有子项的大小为20+30+50+40)


如果可以用java实现,效果会更好。您可以使用HashMap,如下所示:

public class Test {
    public static void main(String... args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        put(map, "/a/b/c/d1", 20);
        put(map, "/a/b/c/d2", 30);
        put(map, "/a/b/c", 50);
        put(map, "/a/b/x", 40);
        System.out.println("/a/b/c: " + map.get("/a/b/c"));
        System.out.println("/a/b: " + map.get("/a/b"));
    }
    static void put(HashMap<String, Integer> map, String path, int value) {
        String p = "";
        for(String e : path.split("/")) {
            if (e.length() > 0) {
                p += "/" + e;
                Integer old = map.get(p);
                map.put(p, (old == null ? 0 : old) + value);
            }
        }
    }
}
公共类测试{
公共静态void main(字符串…参数){
HashMap=newHashMap();
付诸表决(地图,“/a/b/c/d1”,第20页);
放置(地图,“/a/b/c/d2”,30);
放置(地图,“/a/b/c”,50);
放置(地图,“/a/b/x”,40);
System.out.println(“/a/b/c:+map.get(“/a/b/c”));
System.out.println(“/a/b:+map.get(“/a/b”);
}
静态void put(HashMap映射、字符串路径、int值){
字符串p=“”;
for(字符串e:path.split(“/”){
如果(如长度()>0){
p+=“/”+e;
整数old=map.get(p);
put(p,(old==null?0:old)+值);
}
}
}
}

Hm,现在我们知道你想要什么了,但是。。。你的问题是什么?你试过什么吗?