巧用HashSet不可重复的特性来解决重复值的问题

问题:

完成一个生成1000个0到2000之间的随机数,不可以有重复值。

解决方案

方式一

这里用比较传统的方法,先生成随机数,然后遍历所有的值,看是否是重复,如果不重复,那么就添加,重复的话,丢弃继续生成。

 

方式二

这里利用了HashSet的特性。

我们都知道数组这种数据类型的弱点是插入和删除速度很慢,所以在数据频繁变动的场合中,数组并不适宜,而链表的插入和删除相当容易,但是链表在寻找一个特定的值的时候并不容易,每次都要从第一个节点一个个地向后找。

HashSet就是这种数据类型的补充,不但插入和删除容易,而且查找也很容易。

HashSet原理可以参考以下图片:

上图摘抄自:《Java就该这样学》

一起来看看实现方法:

 

通过以上,我们发现不仅效率上来了,而且代码量也简洁多了。






如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

发表评论