将数组中的内容随机打乱

问题:斗地主游戏,开局会将纸牌重新打乱,请用数组的随机排序实现

思考:

一、
遍历当前数组,Random.next位置下标取值放入新的数组中,为了一定随机不会取重,再加判断是否已加入过新的数组中

二、
正序或逆序遍历数组;将当前位置的元素与Random.next位置的元素调换位置

	/**
	 * 打乱数组中元素的顺序
	 * @param args
	 */
	public static void randomAccessArray(String[] argsArray){
		String[] cloneArray = argsArray.clone();
		int length = cloneArray.length ;
		Random random = new Random();
		for(int index = 0 ; index < length ; index++){
			int nextInt = random.nextInt(length);
			String temp = cloneArray[index];
			cloneArray[index] = cloneArray[nextInt];
			cloneArray[nextInt] = temp ;
		}
		for(int index = 0 ; index < length ; index++){
			System.out.print(cloneArray[index]+" ");
		}
	}


三、调用工具类

	/**
	 * 调用工具类
	 * @param argsArray
	 */
	public static void collectionMethod(String[] argsArray){
		int length = argsArray.length;
		Collections.shuffle(Arrays.asList(argsArray));
		for(int index = 0 ; index < length ; index++){
			System.out.print(argsArray[index]+" ");
		}
	}

Arrays.asList
Collections.shuffle

猜你喜欢

转载自mingyundezuoan.iteye.com/blog/2397872
今日推荐