为了账号安全,请及时绑定邮箱和手机立即绑定

java中引用类型的问题

java中引用类型的问题

弑天下 2019-03-01 10:34:12
请输入代码 public class Test2 { private static List<List<Integer>> result; public static List<List<Integer>> combine(int n,int k){ ArrayList<Integer> temp=new ArrayList<>(); if(n<=0||k<=0||k>n){ return result; } generateCombination(n,k,1,temp); return result; } public static void generateCombination(int n,int k,int start,ArrayList<Integer> list){//将从start开始的所有的可能情况放入到list中 if (list.size()==k){ **result.add((List<Integer>) list.clone());** /*System.out.println(result.toString());*/ return; } for(int i=start;i<=n;i++){ list.add(i); generateCombination(n,k,i+1,list); list.remove(list.size()-1); } } public static void main(String[] args) { Scanner sin=new Scanner(System.in); int N=sin.nextInt(); int K=sin.nextInt(); result=new ArrayList<>(); System.out.println(combine(N,K)); } } 为什么result.add(list)在主程序中打印的时候输出result的都是空呢?而使用result.add((List<Integer>) list.clone());才能把list中的内容保存到result里边,就算result里边每一次add都是引用了同一个对象,但是也不应该为空啊?有没有人解答一下?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 441 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号