隨機生成0~9十個數字,十個數字不重複(包含升序,降序)

     最近寫一個給用戶輸入的密碼鍵盤,所以爲了安全期間,寫一個隨機生成0~9的數字,每個不重複,廢話不說了,直接貼出代碼:

    

import java.util.ArrayList;
import java.util.List;
/**
 * 隨機得到10個數字<br>
 * 平且這10個數字都是0~9之間<br>
 * 這10個數字不會重複
 * @author spring sky<br>
 * Data:2012年3月6日 22:17:14
 * Email:[email protected]
 *
 */
public class Number {
	/**
	 * 遞歸得到隨機數字
	 * @param list
	 * @return
	 */
	public List<Integer> get(List<Integer> list)
	{
		if(list==null)
		{
			list = new ArrayList<Integer>();
		}
		if(list.size()<10)
		{
			int a = (int) (Math.random()*10);
			if(!check(list, a))
			{
				list.add(a);
			}
			get(list);
		}
		return list;
	}
	/**
	 * 檢驗List是否已經存在了
	 * @param list
	 * @param a
	 * @return
	 */
	public boolean check(List<Integer> list,int a)
	{
		boolean b = false;
		for (int j = 0; j < list.size(); j++) {
			if(a == list.get(j))
			{
				b = true;
				break;
			}
		}
		return b;
	}
	
	/**
	 * 升序降序
	 * @param os
	 */
	public static void toArray(int[] os){
		for (int i = 0; i < os.length; i++) {
			for(int j=0;j<os.length-i-1;j++){
				
				if(os[j]<os[j+1]){
					int temp=os[j];
					os[j]=os[j+1];
					os[j+1]=temp;
				}
			}
		}
		System.out.print("降序得到的數字:");
		for (int i = 0; i < os.length; i++) {
			System.out.print(os[i]);
			System.out.print("  ");
		}
		
		for (int i = 0; i < os.length; i++) {
			for(int j=0;j<os.length-i-1;j++){
				
				if(os[j]>os[j+1]){
					int temp=os[j];
					os[j]=os[j+1];
					os[j+1]=temp;
				}
			}
		}
		System.out.println();
		System.out.print("降序得到的數字:");
		for (int i = 0; i < os.length; i++) {
			System.out.print(os[i]);
			System.out.print("  ");
		}
		
	}
	/**
	 * 測試隨機的結果
	 * @param args
	 */
	public static void main(String[] args) {
		
		List<Integer> myList = null;
		Number n = new Number();
		List<Integer> list = n.get(myList);
		
		int[] ints = new int[list.size()];
		System.out.print("隨機得到的數字:");
		for (int i = 0; i < list.size(); i++) {
			int aa = list.get(i);
			ints[i] = aa;
			System.out.print(aa);
			System.out.print("  ");
		}
		System.out.println();
		toArray(ints);
	}
}


 

大家用的時候,直接run就可以了!   如果有更好的,可以給我提供參考,謝謝了哦!

發佈了67 篇原創文章 · 獲贊 238 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章