适用于父子关系的数据结构。
//从数据库中查找所有地址
@Select("select t.id as addressId,t.address_name as addressName,t.parent_id as parentId from t_equipment_address t")
public List<EquipmentAddressVo> getAllEquipmentAddress();
//工具类
public class TreeUtil {
// RecursiveEquipmentType
public static List<EquipmentAddressVo> RecursiveAddress(List<EquipmentAddressVo> treeNodes){
List<EquipmentAddressVo> trees = new ArrayList<EquipmentAddressVo>();
for (EquipmentAddressVo treeNode : treeNodes) {
if ("".equals(treeNode.getParentId()) || null==treeNode.getParentId() ) {
trees.add(findAddressChildren(treeNode,treeNodes));
}
}
return trees;
}
/**
* 递归查找地址子节点
* @param treeNodes
* @return
*/
public static EquipmentAddressVo findAddressChildren(EquipmentAddressVo treeNode,List<EquipmentAddressVo> treeNodes) {
for (EquipmentAddressVo it : treeNodes) {
if(treeNode.getAddressId().equals(it.getParentId())) {
if (treeNode.getChildren() == null) {
treeNode.setChildren(new ArrayList<EquipmentAddressVo>());
}
treeNode.getChildren().add(findAddressChildren(it,treeNodes));
}
}
return treeNode;
}
}
//vo实体类
public class EquipmentAddressVo {
/**
* 地址ID
*/
@ApiModelProperty("地址ID")
private String addressId;
/**