您的位置:首页 > 其它

随机生成0~9十个数字,十个数字不重复(包含升序,降序)

2012-03-07 09:03 495 查看
最近写一个给用户输入的密码键盘,所以为了安全期间,写一个随机生成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:vipa1888@163.com
*
*/
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就可以了! 如果有更好的,可以给我提供参考,谢谢了哦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: