Java程序员一段有序集合代码,却不知有啥问题:求帮忙看看

在我们刚开始学习编程的时候,会出现一些“细节”上的错误,这些错误可能并不是我们代码中有错误,而是对于一些概念还不清楚所导致的,然而编程偏偏又是一个需要严谨的技术活,所以这些细节上的失误就会造成程序运行出错!

近日就有一位Java程序员写了一段有序集合代码,可是却不知道出了什么问题,总是运行出错!

0RrGdnLBbUG

0RrGdpnC1oG

这段代码调用了私有制的private,然后用int型的数据类型分别定义两个集合的对象,之后在用s和v标记了List1集合和List2集合的偏移, 然后进入循坏,之后判断输出他们的交集,总体的格式就是这样的。

0RrGdpKxWlM

有网友认为,这段代码的问题非常多,代码中不仅加了那么多临时变量,而且还用while,这样会产生异常的,因为根本求不出正确的交集!可是这位程序员很不解,代码逻辑没有什么问题,而且也可以求的出正确的交集,只是会丢失掉最后一个交集变量而已。

0RrGdnmyUS0

有网友给出解释:这已经不是集合的问题了,而是线性表,因为可能会出现重复的元素,List可能是链表,是要用到迭代器的,而且还可能访问不到最后一个元素,而从整体角度来看,这个方法应该是“返回”而不是用“打印”,因为交集是单独的功能,List也没有保证是有序的,需要靠外部逻辑来保证。

0RrGdr2xE2a

在日常的工作和学习中,经常会出现这样的情况,我们提高自己技术的同时,很忽略这样偏理论性的知识,这样造成的错误往往是比较严重的,所以在动手敲代码之余,可不要忘记巩固自己的理论知识。

欢迎刚入门的Java小白朋友们加入Java之家:79979,2590

里面提供免费的Java的学习资料(里面有企业级技术、日常练习案例等多个知识点的资料,每晚我还会在群内直播上课)

转载于:https://my.oschina.net/u/4005571/blog/2872522

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值