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());
	}
}