ShuffleElements(随机打乱数组中的元素)

给定一个数组,随机打乱数组中的元素,题意很简单直接上代码:

package Array;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class ShuffleElements {

	public static void main(String[] args) {
		int [] array = {1,2,3,4,5};
		//随机打乱数组中的元素
		//int [] result = randomizeArray(1,10);
		  shuffle();
		//打印数组中的元素
		//print(result);
	}
	
	/**
	 * 打印数组中的元素
	 * @param result
	 */
	private static void print(int[] result) {
		if (result != null && result.length>0) {
			for (int i = 0;i<result.length;i++) {
				System.out.print(result[i]+" ");
			}
			System.out.println();
		}
		
	}

	/**
	 * 随机打乱数组中的数字
	 * @param array
	 * @return
	 */
	public static int[] randomizeArray(int [] array){
		Random gen = new Random();
		for (int i=0;i<array.length;i++) {
			int randomPosition = gen.nextInt(array.length);//生成0-array.length区间的随机数
			int temp = array[i];
			array[i] = array[randomPosition];
			array[randomPosition] = temp;
		}
		
		return array;
		
	}
	
	/**
	 * 随机打乱a-b区间的数据
	 * @param a
	 * @param b
	 * @return
	 */
	public static int[] randomizeArray(int a,int b){
		Random rgen = new Random();
		
		int size = b-a+1;//数组的大小
		int [] array = new int[size];
		for (int i = a;i<size;i++) {
			array[i] = a+i;
		}
		for (int i=0;i<array.length;i++) {
			int randomPosition = rgen.nextInt(array.length);//生成0-array.length区间的随机数
			int temp = array[i];
			array[i] = array[randomPosition];
			array[randomPosition] = temp;
		}
		
		print(array);
		return array;
	}
	
	//jdk中的shuffle方法
	public static void shuffle(){
		int[] array = new int[]{1,2,3,4,5};
		Collections.shuffle(Arrays.asList(array));
		print(array);
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}

  

posted on 2017-10-20 15:39  airycode  阅读(635)  评论(0编辑  收藏  举报

导航