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

标签 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 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/

相关文章:

java - 将资源添加到 JAR

algorithm - 仅通过公共(public)交通找到最佳路线的策略?

r - 基于模型的递归划分模型是否来自混合效应模型家族?

java - 我可以检查 JBoss JMS 队列吗?

Java 2D碰撞响应方法

c - 数组初始化

python - 按距离查找附近 xyz 点的最佳数据结构?

java - 为什么我的递归不起作用? ( java )

algorithm - Haskell:展平二叉树

java - 如何使用 Logback 更改 JSON 输出中的键名?