在父子层次结构中按父/子顺序排序列表

时间:2019-12-09 11:18:08

标签: java parent-child hierarchical-data

我有一个与亲子关系的产品清单。

enter image description here

我想按父子层次结构对列表进行排序。 预期列表id的顺序: [1,3,4,5,2,6]

我已经尝试了一种适用于一级父级子级但不适用于多级父子级关系的实现。

list.sort(new Comparator<Product>() {
    @Override
    public int compare(Product p1, Product p2) {
        int priortyP1, priortyP2;
        if (p1.getParentId() == null) {
            priortyP1 = p1.getId() * 1000;
        } else {
            priortyP1 = p1.getParentId() * 1000 + p1.getId();
        }

        if (p2.getParentId() == null) {
            priortyP2 = p2.getId() * 1000;
        } else {
            priortyP2 = p2.getParentId() * 1000 + p2.getId();
        }
        return priortyP2 - priortyP1;
    }
}); 

0 个答案:

没有答案