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

djmtx 2019-04-28 10:58:43
如图代码,为什么该方法没有返回值,但是又加了个范型<E>,这是求排列组合的递归方法,我也没明白为什么在data(copycats) remove完后,方法又继续执行了。求大神解答,不甚感激。
...全文
114 点赞 收藏 5
写回复
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循环吗
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2019-04-28 10:58
社区公告
暂无公告