java 随机获取数组中元素的方法

来源:百度知道 编辑:UC知道 时间:2024/07/09 06:27:50
现有一个数组,例如:int []A={1,2,3,4,5,6,7,8,9,10},
怎样随机从其中取出5个不重复的数?我有个办法就是过程有些繁琐,
希望高手能给个好用简练的实现方法。
PS:我在每次生成随机数时都要与先前生成的随机数进行比较,有没有一次生成多个互不相同的随机数的方法呢?

package org.andylee1988;

import java.util.Iterator;
import java.util.TreeSet;

public class Test2 {

public static void main(String[] args) {
int []A={1,2,3,4,5,6,7,8,9,10} ;
TreeSet<Integer> ts = new TreeSet<Integer>() ;
while(ts.size() < 5 ){
int n = (int) (Math.random()*10) ;
ts.add(A[n]) ;
}
Iterator<Integer> iter ;
for(iter = ts.iterator() ; iter.hasNext() ;){
System.out.println(iter.next()) ;
}
}
}

测试结果:
2
3
5
8
9

TreeSet里面不能存储相同的数,每个数都是唯一的,还会帮你自动从小到大排列。 希望能够帮到你!

先生成一个1~数组长度间的随机数,取出数组中对应的数。
再移除上面那个数后生成新数组。
在新数组里做上面的同样的操作。

你与其在随机数上考虑还不如在数组上做手脚
你按数组长度生成随机数,然后将数组中对应的元素和最后一个元素对调,然后按
数组的长度减一生成随机数一次类推就行了,相信代码不用我给你写了吧?

生成一个随机数,然后这个随机数++,

为什么不用集合?
集合你有乱序的方法,很方便