import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class TestRandomArray {
public static void main(String[] args) {
String [] ids=new String[]{"a","c","b","e","f","g","h","k","x","i","p","3","4","1","m","n"};
Random r=new Random();
String strarray[]=new String[10];
int index=0;
for(int i=0;i<10;i++)
{
//刚开始从数组中随机抽取一个
//而后将抽取的元素后面的元素向前推进到随机的位置[index位置]
//随着循环的继续,逐渐抛弃后面的元素
index=r.nextInt(ids.length-i);
strarray[i]=ids[index];
//元素向前推进到随机[index]的位置
for(int j=index;j<ids.length-i-1;j++){
ids[j]=ids[j+1];
}
}
Set<String> set=new HashSet<String>();
for (String string : strarray) {
System.out.print(string+" ");
set.add(string);
}
System.out.println();
System.out.println(set+","+set.size());
}
}
http://hehaibo.iteye.com/blog/1026958