ID PARENT_ID NAME
-------------------
1 0 A
2 1 B
3 1 C
4 2 D
5 3 E
6 5 F
7 0 G
8 7 H
9 3 I
效果如下:
1-----------A
-------2-----------B
--------------4-----------D
-------3-----------C
-------------- 5-----------E
---------------------6-----------F
--------------9-----------I
7-----------G
-------8-----------H
23 个解决方案
#1
要求是在Eclipse里用String[][]二维数组放进去,然后遍历出来,效果要和下面的一样,十万火急啊,突然不知道如何下手了,帮帮忙啊大家
#2
还有半个小时考官就要答案了,哭。。。。。。。
#3
真没看出来有什么规律。。。
#4
mark

#5
试参考如下:
public static void main(String[] args) {
String[] names = new String[] { "A", "B", "C", "D", "E", "F", "G", "H",
"I" };
int[][] pairs = new int[][] { { 1, 0 }, { 2, 1 }, { 3, 1 }, { 4, 2 },
{ 5, 3 }, { 6, 5 }, { 7, 0 }, { 8, 7 }, { 9, 3 } };
String line = "-------";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < pairs.length; i++) {
sb.delete(0, sb.length());
for (int j2 = 0; j2 < pairs[i][1]; j2++) {
sb.append("-");
}
sb.append(pairs[i][0]);
sb.append(line);
sb.append(names[i]);
System.out.println(sb.toString());
}
}
#6
比如说2的父ID为1,1的NAME为A
#7
刚才那个似乎不是你要的,这个应该是:
打印效果如下:
1-------A
-------2-------B
-------3-------C
--------------4-------D
--------------5-------E
---------------------6-------F
7-------G
-------8-------H
--------------9-------I
public static void main(String[] args) {
Map<String, String> parms = new HashMap<String, String>();
String[] names = new String[] { "A", "B", "C", "D", "E", "F", "G", "H",
"I" };
int[][] pairs = new int[][] { { 1, 0 }, { 2, 1 }, { 3, 1 }, { 4, 2 },
{ 5, 3 }, { 6, 5 }, { 7, 0 }, { 8, 7 }, { 9, 3 } };
String line = "-------";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < pairs.length; i++) {
sb.delete(0, sb.length());
String str = parms.get(pairs[i][1] + "") == null ? "" : parms
.get(pairs[i][1] + "");
sb.append(str);
sb.append(pairs[i][0]);
sb.append(line);
sb.append(names[i]);
parms.put(pairs[i][0] + "", str + line);
System.out.println(sb.toString());
}
}
打印效果如下:
1-------A
-------2-------B
-------3-------C
--------------4-------D
--------------5-------E
---------------------6-------F
7-------G
-------8-------H
--------------9-------I
#8
用递归吧
效率低下
static List<String[]> list=new ArrayList<String[]>();
static {
list.add(new String[]{"1","0","A"});
list.add(new String[]{"2","1","B"});
list.add(new String[]{"3","1","C"});
list.add(new String[]{"4","2","D"});
list.add(new String[]{"5","3","E"});
list.add(new String[]{"6","5","F"});
list.add(new String[]{"7","0","G"});
list.add(new String[]{"8","7","H"});
list.add(new String[]{"9","3","I"});
}
public static void test(String n,int lvl){
String p="";
for(int i=1;i<lvl;i++){
p+="---";
}
for(String[] d:list){
if(d[1].equals(n)){
System.out.println(p+d[0]+"--"+d[2]);
test(d[0],(lvl+1));
}
}
}
public static void main(String[] args) {
test("0",1);
}
效率低下
#9
一下子给你说不清。 这种东西做的多了 用数据库查询 或者 java数组 都可以的。
#10
好像是论坛发帖的树形结构,可惜不会写
#11
呵呵,8L高手啊,完全正确,貌似还有一种用List和Map组合也能做的方法,我等会试试
#12
确实是树形结构,就是类似于菜单
#13
7楼的看起来貌似没问题,但没有把ID和Parent_id关联起来,所以结果不一样,只是显示的样式一样
#14
id 和 parentid组成了tree结构,字母是value,图形是按层次显示的应该。只要打出了id和parentid的层次结构,再打出值就可以了
#15
怎么用list和map打印出这个树状结构啊,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的id,最后循环打印结果!试题要求是这样的,麻烦大家再帮帮忙!
#16
怎么用list和map打印出这个树状结构啊,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的id,最后循环打印结果!试题要求是这样的,麻烦大家再帮帮忙!
#17
你不是说用String[][]里做么.....为什么又可以用LIST了
#18
楼主,需求改的太快了!!!
#19
#20
#21
呵呵,这个答案确实很对,但考试的时候考官提示了一下,说的是:
用list和map打印出这个树状结构,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的层级,最后循环打印结果!试题要求是这样的!不知道可以实现不?
用list和map打印出这个树状结构,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的层级,最后循环打印结果!试题要求是这样的!不知道可以实现不?
#22
木有看懂~ 题目没其他信息?
#23
其实这个类是递归输出文件夹目录吧.我记得马士兵说过代码和8L差不多吧.明天上班无聊敲看看
#1
要求是在Eclipse里用String[][]二维数组放进去,然后遍历出来,效果要和下面的一样,十万火急啊,突然不知道如何下手了,帮帮忙啊大家
#2
还有半个小时考官就要答案了,哭。。。。。。。
#3
真没看出来有什么规律。。。
#4
mark

#5
试参考如下:
public static void main(String[] args) {
String[] names = new String[] { "A", "B", "C", "D", "E", "F", "G", "H",
"I" };
int[][] pairs = new int[][] { { 1, 0 }, { 2, 1 }, { 3, 1 }, { 4, 2 },
{ 5, 3 }, { 6, 5 }, { 7, 0 }, { 8, 7 }, { 9, 3 } };
String line = "-------";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < pairs.length; i++) {
sb.delete(0, sb.length());
for (int j2 = 0; j2 < pairs[i][1]; j2++) {
sb.append("-");
}
sb.append(pairs[i][0]);
sb.append(line);
sb.append(names[i]);
System.out.println(sb.toString());
}
}
#6
比如说2的父ID为1,1的NAME为A
#7
刚才那个似乎不是你要的,这个应该是:
打印效果如下:
1-------A
-------2-------B
-------3-------C
--------------4-------D
--------------5-------E
---------------------6-------F
7-------G
-------8-------H
--------------9-------I
public static void main(String[] args) {
Map<String, String> parms = new HashMap<String, String>();
String[] names = new String[] { "A", "B", "C", "D", "E", "F", "G", "H",
"I" };
int[][] pairs = new int[][] { { 1, 0 }, { 2, 1 }, { 3, 1 }, { 4, 2 },
{ 5, 3 }, { 6, 5 }, { 7, 0 }, { 8, 7 }, { 9, 3 } };
String line = "-------";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < pairs.length; i++) {
sb.delete(0, sb.length());
String str = parms.get(pairs[i][1] + "") == null ? "" : parms
.get(pairs[i][1] + "");
sb.append(str);
sb.append(pairs[i][0]);
sb.append(line);
sb.append(names[i]);
parms.put(pairs[i][0] + "", str + line);
System.out.println(sb.toString());
}
}
打印效果如下:
1-------A
-------2-------B
-------3-------C
--------------4-------D
--------------5-------E
---------------------6-------F
7-------G
-------8-------H
--------------9-------I
#8
用递归吧
效率低下
static List<String[]> list=new ArrayList<String[]>();
static {
list.add(new String[]{"1","0","A"});
list.add(new String[]{"2","1","B"});
list.add(new String[]{"3","1","C"});
list.add(new String[]{"4","2","D"});
list.add(new String[]{"5","3","E"});
list.add(new String[]{"6","5","F"});
list.add(new String[]{"7","0","G"});
list.add(new String[]{"8","7","H"});
list.add(new String[]{"9","3","I"});
}
public static void test(String n,int lvl){
String p="";
for(int i=1;i<lvl;i++){
p+="---";
}
for(String[] d:list){
if(d[1].equals(n)){
System.out.println(p+d[0]+"--"+d[2]);
test(d[0],(lvl+1));
}
}
}
public static void main(String[] args) {
test("0",1);
}
效率低下
#9
一下子给你说不清。 这种东西做的多了 用数据库查询 或者 java数组 都可以的。
#10
好像是论坛发帖的树形结构,可惜不会写
#11
呵呵,8L高手啊,完全正确,貌似还有一种用List和Map组合也能做的方法,我等会试试
#12
确实是树形结构,就是类似于菜单
#13
7楼的看起来貌似没问题,但没有把ID和Parent_id关联起来,所以结果不一样,只是显示的样式一样
#14
id 和 parentid组成了tree结构,字母是value,图形是按层次显示的应该。只要打出了id和parentid的层次结构,再打出值就可以了
#15
怎么用list和map打印出这个树状结构啊,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的id,最后循环打印结果!试题要求是这样的,麻烦大家再帮帮忙!
#16
怎么用list和map打印出这个树状结构啊,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的id,最后循环打印结果!试题要求是这样的,麻烦大家再帮帮忙!
#17
你不是说用String[][]里做么.....为什么又可以用LIST了
#18
楼主,需求改的太快了!!!
#19
#20
#21
呵呵,这个答案确实很对,但考试的时候考官提示了一下,说的是:
用list和map打印出这个树状结构,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的层级,最后循环打印结果!试题要求是这样的!不知道可以实现不?
用list和map打印出这个树状结构,list把每行用一维数组存进去,map存放主键,最后通过传递主键找到相应的层级,最后循环打印结果!试题要求是这样的!不知道可以实现不?
#22
木有看懂~ 题目没其他信息?
#23
其实这个类是递归输出文件夹目录吧.我记得马士兵说过代码和8L差不多吧.明天上班无聊敲看看