A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 可见 中级黑马   /  2012-3-9 14:31  /  1902 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

例如{1,2}可以输出1,2,12,21 我看不太懂答案代码的思想,求解释
答案代码如下:
public class A {       
        public static void main(String args[]){
        String[] array = new String[]{"1","2","3","4"};
                listall(Arrays.asList(array),"");
        }
        public static void listall(java.util.List<String> list,String prefix){
                System.out.println(prefix);
                for(int i = 0 ; i < list.size();i++)
                {
                        List temp = new LinkedList(list);
                        listall(temp,prefix+temp.remove(i));
                }
        }
}

用的递归,本人看的不太明白,求高人指点,说明白他的思路就好了。

2 个回复

倒序浏览
本帖最后由 djx900 于 2012-3-9 14:54 编辑

递归就是函数体内 调用函数自身~    我也看不到 你代码 传的参数 比如  tenp  list 还有调用函数 里的参数,来 告诉 也给我指点下啊
回复 使用道具 举报
基本思路就是用工具类方法列出有顺序的各个LIST集合即Arrays.asList(array)
然后用循环加递归的形式不停的remove()方法去获取子集。。。。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马