java随机从数组中掏出不重复的元素
java随机从数组中取出不重复的元素
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()); } }