解决方案 »
- web开发选择.net还是java呀
- 行业里java主要应用到哪方面啊???
- Hibernate问题!请有开发经验的朋友进!
- 表中多条数据如何只取其中一条hibernate
- xml高级应用.
- 如何用DAO自动生成函数 向数据库插入数据?persist merge等
- hibernate + postgreSQL 出错,哪位给看看阿!
- COM+能象J2EE那样在开发中间件时跨平台吗?
- 网上实在找不到了~求组,java导出word列表,表格问题
- 求助 新手weblogic启动不起来了
- 为什么我的项目中使用不了Spring的注解,在其他的项目里面就可以呢?是什么阻碍了我的注解
- easyUI+struts2
public class Childs {
private Integer id;
private String name;
private Integer partid;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPartid() {
return partid;
}
public void setPartid(Integer partid) {
this.partid = partid;
}
public Childs(Integer id, String name, Integer partid) {
super();
this.id = id;
this.name = name;
this.partid = partid;
}
public Childs() {
super();
// TODO Auto-generated constructor stub
}
}import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;import javax.swing.text.AsyncBoxView.ChildState;
public class TestDemo { public static void main(String[] args) {
// TODO Auto-generated method stub
List<Childs> list = getList();
Map<Integer, List<Childs>> map = new HashMap<Integer,List<Childs>>();
//支持输入任意id可获得相应的结果(此处没有进行验证,请自觉输入1-9中的任意一位数)
System.out.print("请输入要查询的id:");
Scanner sc = new Scanner(System.in);
int index = sc.nextInt();
map.put(index, getMap(index, list, new ArrayList()));
//将结果输出
System.out.println("id\tname\tpartid");
for(int i = 0;i<map.get(index).size();i++){
Childs c = map.get(index).get(i);
System.out.println(c.getId()+"\t"+c.getName()+"\t"+c.getPartid());
}
}
/**
* 手动设工程一个符合条件的list
* @return
*/
public static List<Childs> getList(){
List<Childs> list = new ArrayList<>();
for(int i = 0;i<4;i++){
int id = i+1;
String name = "a";
String a = "";
for(int j = 0;j<i;j++){
a += "1";
}
name += a;
Integer partid;
if(i==0)
partid = null;
else
partid = i;
Childs c = new Childs(id,name,partid);
list.add(c);
}
Childs s1 = new Childs(5,"a2",1);
Childs s2 = new Childs(6,"a22",5);
Childs s3 = new Childs(7,"a3",1);
Childs s4 = new Childs(8,"a33",7);
Childs s5 = new Childs(9,"a333",8);
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
// System.out.println("id\tname\tpartid");
// for(int i=0;i<list.size();i++){
// Childs c = list.get(i);
// System.out.println(c.getId()+"\t"+c.getName()+"\t"+c.getPartid());
// }
return list;
}
/**
* 传入相应的参数来求得该id下的所有最小级别节点
* @param id 要查询的节点id
* @param list 已知的所有节点集合
* @param result 要返回的所有最小级别节点集合
* @return 返回result
*/
public static List<Childs> getMap(Integer id,List<Childs> list,List<Childs> result){
boolean flag = true;
for(Childs c : list){
if(c.getPartid()==id){
flag = false;
getMap(c.getId(),list,result);
}
}
if(flag){
for(Childs c : list){
if(c.getId()==id)
result.add(c);
}
}
return result;
}
}