请教下大家一个范型的问题

djmtx 2019-04-28 10:58:43
如图代码,为什么该方法没有返回值,但是又加了个范型<E>,这是求排列组合的递归方法,我也没明白为什么在data(copycats) remove完后,方法又继续执行了。求大神解答,不甚感激。
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-04-28
  • 打赏
  • 举报
回复
引用 楼主 weixin_40280049 的回复:
如图代码,为什么该方法没有返回值,但是又加了个范型<E>,这是求排列组合的递归方法,我也没明白为什么在data(copycats) remove完后,方法又继续执行了。求大神解答,不甚感激。
这应该是泛型的一种格式吧,告诉编译程序参数类型E是一种类型。不然编译程序不知道E是啥东西。
djmtx 2019-04-28
  • 打赏
  • 举报
回复
第一次用递归,刚才脑抽了,竟然没看懂,失礼失礼,感谢大家的指点。
qq_39936465 2019-04-28
  • 打赏
  • 举报
回复
可以看一下递归的数据传递。 第一次 data [a,b,c,d] target[] copydata[a,b,c,d] copytarget[] copydata[b,c,d] copytarget[a] 第2次 data[b,c,d] target[a] copydata[b,c,d] copytarget[a] copydata[c,d] copytarget[a,b] 第3次 data[c,d] target[a,b] copydata[c,d] copytarget[a,b] copydata[d] copytarget[a,b,c] 第4次 data[d] target[a,b,c] copydata[d] copytarget[a,b,c] copydata[] copytarget[a,b,c,d] 第5次 data[] target[a,b,c,d] target.size()==4 打印abcd 程序完毕返回第4次 第4次 for循环完成,返回第3次中的for循环i=1 copydata[c,d] copytarget[a,b] copydata[c] copytarget[a,b,d] 后面可以自己推导
  • 打赏
  • 举报
回复
首先,在方法前加上E代表这是个泛型方法,同时E在这个方法的作用域内代表一种类型。所以跟方法有没有返回值没有直接关系。方法继续执行是指什么?不太清楚,remove之后就是应该执行下一句的,不然递归怎么调用
咦哟~~~ 2019-04-28
  • 打赏
  • 举报
回复
remove完后,方法又继续执行了。这不是个for循环吗

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧