1 Star 0 Fork 0

散步留馨 / model-tree

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

model-tree

树形结构工具,支持递归消费、查询、转换、复制、过滤功能

使用方法

class BasicTreeTest {

    @Test
    public void testConstruct() {
        BasicTree<String> tree = new BasicTree<>("tom");
        System.out.println(tree);
    }

    @Test
    public void testFullEquals() {
        BasicTree<String> t1 = new BasicTree<>("1");
        BasicTree<String> t2 = new BasicTree<>("1");
        assertEquals(t1, t2);
        assertTrue(t1.fullEquals(t2));

        t1.addChild(new BasicTree<>("2"));
        t2.addChild(new BasicTree<>("2"));
        assertEquals(t1, t2);
        assertTrue(t1.fullEquals(t2));

        t1.addChild(new BasicTree<>("3"));
        assertEquals(t1, t2);
        assertFalse(t1.fullEquals(t2));
    }

    @Test
    public void testCopy() {
        BasicTree<String> t1 = new BasicTree<>("1");
        BasicTree<String> t2 = t1.clone();

        assertEquals(t1, t2);
        assertTrue(t1.fullEquals(t2));
        assertFalse(t1 == t2);

        t1.addChild(new BasicTree<>("2"));
        assertEquals(t1, t2);
        assertFalse(t1.fullEquals(t2));

        t2 = t1.clone();
        assertEquals(t1, t2);
        assertTrue(t1.fullEquals(t2));
        assertFalse(t1 == t2);
    }

    @Test
    public void testFindFirst() {
        BasicTree<Integer> t1 = new BasicTree<>(1);
        Optional<BasicTree<Integer>> first = t1.findFirst(it -> it.getRoot().equals(1));
        assertTrue(first.isPresent());
        assertEquals(first.get(), new BasicTree<>(1));

        BasicTree<Integer> t2 = new BasicTree<>(2);
        t2.addChild(new BasicTree<>(3));
        t2.addChild(new BasicTree<>(4));
        t1.addChild(t2);

        Optional<BasicTree<Integer>> first1 = t1.findFirst(it -> it.getRoot().equals(2));
        System.out.println(first1);

        Optional<BasicTree<Integer>> first2 = t1.findFirst(it -> it.getRoot().equals(3));
        System.out.println(first2);
        Optional<BasicTree<Integer>> first3 = t1.findFirst(it -> it.getRoot().equals(4));
        System.out.println(first3);
    }

    @Test
    public void testFilter() {
        BasicTree<Integer> t1 = new BasicTree<>(1);
        BasicTree<Integer> t2 = new BasicTree<>(2);
        t2.addChild(new BasicTree<>(3));
        t2.addChild(new BasicTree<>(4));
        t1.addChild(t2);

        System.out.println(t1.toMap());

        System.out.println(t1.filter(it -> it.getRoot().equals(2) || it.getRoot().equals(1) ||it.getRoot().equals(4)).get().toMap());
    }

    @Test
    public void testMap() {
        BasicTree<Integer> t1 = new BasicTree<>(1);
        BasicTree<Integer> t2 = new BasicTree<>(2);
        t2.addChild(new BasicTree<>(3));
        t2.addChild(new BasicTree<>(4));
        t1.addChild(t2);

        System.out.println(t1.toMap());

        BasicTree<String> maped = t1.map(it -> new BasicTree<String>("Hello " + it.getRoot()));
        System.out.println(maped.toMap());
    }

    @Test
    public void testMapItem() {
        BasicTree<Integer> t1 = new BasicTree<>(1);
        BasicTree<Integer> t2 = new BasicTree<>(2);
        t2.addChild(new BasicTree<>(3));
        t2.addChild(new BasicTree<>(4));
        t1.addChild(t2);

        System.out.println(t1.toMap());

        BasicTree<String> maped = t1.mapItem(it->"Hello " + it);
        System.out.println(maped.toMap());
    }

}

空文件

简介

树型结构 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sanbuliuxin/model-tree.git
git@gitee.com:sanbuliuxin/model-tree.git
sanbuliuxin
model-tree
model-tree
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891