一个数组比如String [] s={"sdf","efd","wefd","efdd"};
我想随机从里面取三个值,最好给另外一个数组,请问通过程序如何做啊,谢谢

解决方案 »

  1.   


    String [] s = {"sdf", "efd", "wefd", "efdd"};

    final String[] target = new String[3];

    final Random random = new Random();

    for(int i = 0 ; i < 3; i ++) {
             int index = random.nextInt(s.length);
        
             target[i] = s[index];
            }
        
            System.out.println(Arrays.toString(target));
      

  2.   

    用split数组分割法,保存到数组中,然后random,在取值
      

  3.   

    import java.util.Random;public class Test {
    public static void main(String[] args) {
    int array[] ={2,3,45,7,2,3};
    calcArrayByRandom(array,5);
    }
    public static void calcArrayByRandom(int [] array,int randomCount){
    if(randomCount>array.length){
    System.err.println("your randomCount is lager than array size");
    return;
    }
    Random r = new Random();
    StringBuilder arrayBuilder=new StringBuilder();
    int bufferSize = 0;
    while(bufferSize<randomCount){
    int rit = r.nextInt(array.length);
    boolean flag =false;
    for(String si:arrayBuilder.toString().split(",")){
    if(si.equals(String.valueOf(rit))){
    flag=true;
    break;
    }
    }
    if(flag==false){
    arrayBuilder.append(rit+",");
    bufferSize = arrayBuilder.toString().split(",").length;
    }
    }
    System.err.println("index arrays is:"+arrayBuilder);
    for(String index :arrayBuilder.toString().split(",")){
    System.out.println("index---"+index+"---arrays content is:"+array[Integer.parseInt(index)]);
    }
    }
    }