public static <T extends DirectorySumTree> List<DirectorySumTree<T>> convertListToTreeDot(List<T> tList) { List<DirectorySumTree<T>> sumTrees = new ArrayList<>(); if (tList != null && tList.size() > 0) { for (int i = 0; i < tList.size(); i++) { T t = tList.get(i); if (!isTreeDotExist(tList, t.getParentId())) { //不存在以父ID为ID的点,说明是当前点是顶级节点 DirectorySumTree<T> tSumTree = getTreeDotByT(t, tList); sumTrees.add(tSumTree); } } } return sumTrees; }
时间: 2024-04-13 20:25:13 浏览: 14
这段代码的作用是将一个泛型为DirectorySumTree的列表转换为DirectorySumTree的树形结构。具体实现的步骤如下:
1. 创建一个空的DirectorySumTree列表sumTrees用于存储树形结构的节点。
2. 判断传入的列表tList是否为空且大小大于0,如果是则执行以下步骤:
3. 遍历tList列表,使用for循环,获取每个元素t。
4. 调用isTreeDotExist方法判断tList中是否存在以t的父ID为ID的节点,如果不存在,说明当前节点是顶级节点。
5. 调用getTreeDotByT方法,根据当前节点t和tList列表获取对应的树形结构节点tSumTree。
6. 将tSumTree添加到sumTrees列表中。
7. 循环结束后,返回sumTrees列表作为结果。
请注意,这段代码中使用了一些未提供的方法isTreeDotExist和getTreeDotByT,这些方法可能是根据具体实现需求而定义的,我无法提供详细实现细节。
相关问题
list<entity>转list<map>
要将List<Entity>转化为List<Map<Object, Object>>,可以使用以下方法:
1. 首先,我们需要创建一个空的List<Map<Object, Object>>来存储转化后的结果。
2. 然后,我们遍历原始的List<Entity>中的每个实体对象。
3. 对于每个实体对象,我们需要创建一个空的Map<Object, Object>来存储转化后的键值对。
4. 我们使用反射获取实体对象的所有get方法,并遍历每个get方法。
5. 对于以"get"开头的方法名,我们将其截取后面的属性名,并将首字母转为小写,用作Map中的键。
6. 使用反射调用get方法获取实体对象中对应属性的值。
7. 如果属性的返回类型是java.util.Date,并且值不为null,则将日期格式化为指定的格式(比如"yyyy-MM-dd HH:mm:ss")。
8. 将属性名作为键,属性值作为值,存入Map中。
9. 将转化后的Map添加到结果的List中。
10. 最后返回转化后的List<Map<Object, Object>>。
下面是一个示例的代码实现,用于将List<Entity>转化为List<Map<Object, Object>>:
```
public static <T extends IdEntity> List<Map<Object, Object>> EntityConvertMap(List<T> list) {
List<Map<Object, Object>> result = new LinkedList<>();
try {
for (T entity : list) {
Map<Object, Object> map = new HashMap<>();
Method[] methods = entity.getClass().getMethods();
for (Method method : methods) {
if (method.getName().startsWith("get")) {
String name = method.getName().substring(3);
name = name.substring(0, 1).toLowerCase() + name.substring(1);
Object value = method.invoke(entity);
if (method.getGenericReturnType().toString().equals("class java.util.Date") && value != null) {
value = getNow((Date) value, "yyyy-MM-dd HH:mm:ss");
}
map.put(name, value);
}
}
result.add(map);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
```
这样,你就可以使用该方法将List<Entity>转化为List<Map<Object, Object>>了。<span class="em">1</span><span class="em">2</span>
public abstract class BaseScheme implements Serializable { protected static Map<String, String> scheme; public static <T> Map<String, Object> dataMapping(T data, Class<T> tClass) throws NoSuchFieldException, IllegalAccessException { Map<String, Object> result = new HashMap<>(scheme.size()); for (Map.Entry<String, String> entry : scheme.entrySet()) { Field field = tClass.getDeclaredField(entry.getValue()); field.setAccessible(true); Object value = field.get(data); result.put(entry.getKey(), value); } return result; } public static <T> List<Map<String, Object>> dataListMapping(List<T> list, Class<T> tClass) throws NoSuchFieldException, IllegalAccessException { List<Map<String, Object>> result = new ArrayList<>(); for (T item : list) { result.add(dataMapping(item, tClass)); } return result; } } 子类继承BaseScheme,调用dataMapping方法,怎么使用到自己的scheme变量
如果子类需要使用自己的`scheme`变量,可以在子类中重新定义一个同名的静态变量,并赋上对应的值。然后在调用`dataMapping`方法时,使用子类中的`scheme`变量即可。
例如,假设子类为`ChildScheme`,需要使用自己的`scheme`变量,那么可以在`ChildScheme`中重新定义一个同名的静态变量,并赋上对应的值,例如:
```
public class ChildScheme extends BaseScheme {
protected static Map<String, String> scheme = new HashMap<>();
static {
scheme.put("key1", "value1");
scheme.put("key2", "value2");
}
// other methods and fields
}
```
然后在调用`dataMapping`方法时,使用`ChildScheme`中的`scheme`变量即可,例如:
```
ChildScheme.scheme // 使用子类的 scheme 变量
ChildScheme.dataMapping(data, tClass) // 调用父类的 dataMapping 方法
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)