我在从具有树状层次结构的db中排序行时遇到问题。每行包含三个对此问题有意义的列:id,parent,lp。 Id是String,parent是另一行,lp是用于对没有父子关系的行进行排序的数字。每行可以有任意数量的子节点,只有一个父节点(顶层为null)
我看到有三种情况:
我已经编写了这个代码,我认为应该解决这个问题,但它不适用于层次结构深层的行,它会使命令混乱:
dane = dane.sort {it1, it2 ->
it1 == it2.parent ? -1 :
it1.parent && it1.parent.lp < it2.lp ? -1 :
it1.lp - it2.key.lp
}
我很感激任何建议。 Thx提前!
答案 0 :(得分:0)
无论参数的顺序如何,您的比较都应该是一致的。如果参数为a = it1
和b = it2
,则结果应为b = it1
和a = it2
的否定。这看起来并不像这样。例如,it1.parent == it2
。