这个ARRAYLIST 里的OBJECT都有两个ID,一个是FROMID,一个是TOID,基本上来说就是一个父ID,一个子ID,一个父结点可能有多
个子节点,一个子节点也可能有多个父结点,也可能有ORPHAN NODE,但不会有环形。我希望SORT以后的ARRAY是:
1)如果O1的FROMID是O2的TOID,那么O1派在O2前边;
2)如果O1的FROMID和O2的FROMID相等,那么O1等于O2;
3)如果O1的TOID和O2的TOID相等,那么O1等于O2;
4)如果是ORPHAN NODE的话,就放在最后,当然如果存在多个树的话,两个基本点树的相待位置不要紧,就是说谁放谁前面都没关系
5)当然,如果O1的子孙是O2的父亲,那么O1要排在O2前面;
如果用COMPARATOR的话,前面1,2,3都容易解决,但是4,5我就不知道怎么有效的解决,哪位给个提示?我已经有点一脑子浆糊了,写的东西总有问题。
多谢了。
个子节点,一个子节点也可能有多个父结点,也可能有ORPHAN NODE,但不会有环形。我希望SORT以后的ARRAY是:
1)如果O1的FROMID是O2的TOID,那么O1派在O2前边;
2)如果O1的FROMID和O2的FROMID相等,那么O1等于O2;
3)如果O1的TOID和O2的TOID相等,那么O1等于O2;
4)如果是ORPHAN NODE的话,就放在最后,当然如果存在多个树的话,两个基本点树的相待位置不要紧,就是说谁放谁前面都没关系
5)当然,如果O1的子孙是O2的父亲,那么O1要排在O2前面;
如果用COMPARATOR的话,前面1,2,3都容易解决,但是4,5我就不知道怎么有效的解决,哪位给个提示?我已经有点一脑子浆糊了,写的东西总有问题。
多谢了。