昨天有位同学说,希望生成50个1000以内的随机数,并且这些随机数个个都要不同。其实这是个非常容易实现的。
首先我们得知道方法。其实很多搞学习java的同学,甚至在公司里面实习的同学们都不太注意甚至都不知道有java API。这是很恐怖的事情。java为我们提供了非常多的优秀函数去实现特定的功能,并不是说我们遇到了一个问题,就要从头到尾子集编制算法去实现,很多时候,这在时间上是不允许的,并且你编制的程序不一定比java本身提供的更优秀。当然知道别人提供的算法/函数的实现原理/过程是非常重要的,但是充分的利用别人提供的API,对于一名java程序员来说也是相当重要的。
Set集合。相信很多人都听说过Set集合,既然是集合,那么集合中就不应该有相同的两个元素。Set刚好有这条性质。这就为我们实现很多特定需求提供帮助。简单来说,如果Set集合里面已经存在某个元素,而你又重复添加,当然会添加失败,返回一个false,反之返回一个true。下面是一个简单的实例1:
可以看出来,如果Set集合里面已经存在了某个元素,再次插入的话,返回一个false,也就是插入失败。
List列表。跟Set集合还是有点区别,但是List也不能够实例化,只能够用它的子类实例化,然后上转型。List里面允许有相同的元素,只要插入的元素类型与List刚开始申明的元素类型相同就会返回true。如实例2:
显然插入成功。List集合的好处是,您不指导将来产生的数据有多少的情况下,List能够动态的增加长度。
Foreach循环。Foreach循环比for循环要高效,尤其是在遍历Set以及List等Collection的众多子类对象的时候非常有用,这里不再一一介绍。下面直接转到正题,给出求1000以内的50个互不重复的随机数的程序截图,如实例3:
方法1
方法2
运行结果:
137 956 819 280 672 553 154 807 20 694 149 516 788 513 315 664 293 431 667 902 57 663 418 658 610 341 340 475 631 458 82 334 875 373 238 101 98 371 231 586 980 356 975 251 354 244 366 604 122 121
688 91 798 106 328 855 447 381 430 384 452 126 389 40 874 200 393 653 15 827 218 870 961 168 668 887 592 371 166 552 615 222 548 464 177 613 777 705 277 226 204 264 506 783 970 55 586 144 340 669