我想以分层格式存储数据,例如/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);
}
}
}
}
关于java - 如何存储文件结构类型的数据以便于检索和插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425340/