Java中shuffle算法的使用
导语:shuffle算法(洗牌算法)就是将顺序打乱,一个典型的应该就是音乐播放器随机播放,下面是Java中 shuffle 算法的使用,一起来学习下吧:
Fisher–Yates shuffle 基本思想(Knuth shuffle ):
To shuffle an array a of n elements (indices 0..n-1):
for i from n 1 downto 1 do
j ← random integer with 0 ≤ j ≤ i
exchange a[j] and a[i]
JDK源代码如下:
代码如下:
/**
* Moves every element of the List to a random new position in the list.
*
* @param list
* the List to shuffle
*
* @throws UnsupportedOperationException
* when replacing an element in the List is not supported
*/
public static void shuffle(List list) {
shuffle(list, new Random());
-
java日期时间基本操作方法
1.获得Calendar实例:Calendarc=nstance();2.定义日期/时间的格式:SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");3.把日期/时间转换成固定格式,使用SimpleDateFormat的'format()方法:Stringdatetime=at(ime());4.把字符串转换成日期/时间,...
-
10个经典的Java main方法面试题
Java具有简单性、面向对象、分布式、健壮性、安全性、平台的独立与可移植性、多线程、动态性等特点。以下是为大家分享的10个经典的Javamain方法面试题,供大家参考借鉴,欢迎浏览!1.不用main方法如何定义一个类?不行,没有main方法我们不能运行Java类。在Java7之前,...
-
计算机二级Java备考习题及答案
练习可以帮助我们加深对知识的记忆和理解,下面是本站小编整理的2017计算机二级Java备考练习题及答案,欢迎学习!备考练习题一1、下列叙述中,错误的是______。A、Applet的默认布局管理器是FlowLayoutB、JApplet中增加构件是加到JApplet的内容面板上,不是直接加到JApp...
-
Java创建线程的三种方法
导语:编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。下面是Java创建线程的三种方法,一起来学习下吧:Runnable和Callable的区别(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务...