今天去面试,面试官出的题目是一张部门表,里面有三个字段,一个是ID,一个是部门名称,还有一个是上级部门的ID,他的要求是用一种方法以树的形式在后台展现出来以方便在前台显示,我当时是用的hibernate的树状映射,但面试的时候他说这不是他想要的答案,最后我们所有同学都面试完了,只有一个同学的答案是他想要的,我问那个同学,他说用什么结构、类什么的,还有什么二维数组一样,具体的他也没给我说清楚,所以想请教一些这里的高手,这个到底怎么实现?就是用结构啊类啊什么的,这个问题不搞清楚的话我这心里就始终不舒服,麻烦哪个高手指点一下了,谢谢!
解决方案 »
- 使用jsp调用tag文件时浏览器显示中文乱码怎么办?
- 服务器发回来的值,JS变量的内容怎么会变成这样呢?
- 初学,关于servlet配置
- 去掉server8080.xml中的注释,加入数据源的配置,出现如下错误:...
- JAVA response的一点点小问题。
- 请教各位关于javabean scope="Application"一个棘手的问题
- 一個時間數組的問題,高分求救!(JAVA)
- 那里有用JAVA做的B/S结构软件的演示版或源代码下载呀?50分送上!
- 我用jquery uploadify插件进行表单和文件数据提交。现在我可以单文件和数据一起提交,多文件和数据提交就无法提交求解答
- java程序生成zip文件并下载,在弱网络情况下,下载不完全,解压不成功,提示压缩文件已经损坏
- CXF客户端如何接收服务端的复杂对象
- java.lang.NoSuchFieldError: deferredExpression
页面显示树形结构其实都是大同小异 把没有上级部门的作为根节点 向下遍历 ~~
他们唯一的不同就是所属不同。A 部门属于 顶级
B 部门属于 A部门那么就可以通过 所属部门id 进行迭代查出所有的关系。
如:有父节点parentID, 子节点ID1,ID2,ID3
HashMap childHashMap;
childHashMap.put(ID1,Object);
childHashMap.put(ID2,Object)
childHashMap.put(ID3,Object)
parentHashMap.put(ParentID,childHashMap);
数组:存储类的对象,有一个对象加载进来时,从数组里找到父结点,修改其父结点标志(这里方法很多,可以是父结点在数据中的下标),可以是父结点的引用等。
甚至还可以使用多叉树等,树的结构存储方法很多。
还要考虑到数据的加载是否动态加载,递归查询如在Oracle里可以直接使用数据库提供的功能实现递归查询,但是其他很多数据库不支持递归查询,这个时候就需要其他的方法来查询。以前做过一个上下级无限制级数的系统,就使用过上面提到的这些。