方法1.采用随机索引交换元素
0-9的数字索引从0开始 索引 和数字一一对应,使用产生随机索引的方式随机产生数字,将产生的随机索引的元素和后面的元素交换位置,将数字的顺序打乱且不重复,最后打印输出前6个数字。
int[] array = {0,1,2,3,4,5,6,7,8,9};
Random rand = new Random();
for (int i = 10; i > 1; i--) {
int index = rand.nextInt(i);
int tmp = array[index];
array[index] = array[i - 1];
array[i - 1] = tmp;
}
int result = 0;
for(int i = 0; i < 6; i++){
System.out.print(array[i]);
}
// for(int i = 0; i < 6; i++)
// result = result * 10 + array[i];
// System.out.println(result);
方法2.使用Java集合 Set 解决问题
public class Test3{
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; i < 6; i++){
int a;
do{
a = (int)(Math.random() * 10);
}while(set.contains(a));
set.add(a);
System.out.print(a + " ");
}
}
}
方法3.使用Java集合 Set 解决问题
Set<Integer> set =new HashSet<Integer>(); //定义一个set。
Random r = new Random(); //定义一个产生随机数的实体对象;
while (set.size() < 6) { //产生6个:因为set是无序唯一的;
int r_number = r.nextInt(10);// 产生0到9的整型数据
set.add(r_number);
}
/**
* 下面是遍历出产生的随机数
*/
Iterator<Integer> it = set.iterator();//迭代器
while (it.hasNext()) {
System.out.print(it.next());//取出数据
}