数组的值是固定的,只是想改变顺序
数组
String[] a={"1","2","3","4","5"};
效果
a={"5","2","3","1","4"};
或a={"3","2","1","5","4"};等

解决方案 »

  1.   

    import java.util.Vector ;public class Test
    {
    public static void main( String[] args )
    {
    String[] a={ "1", "2", "3", "4", "5" } ;
    Vector v = new Vector(5) ;
    for( int i=0; i<a.length; i++ )
    {
    v.addElement( a[i] ) ;
    }
    for( int i=0; i<a.length; i++ )
    {
    int r = getRandom( a.length - i ) ;
    a[i] = (String)v.elementAt( r ) ;
    v.remove( r ) ;
    }
    for( int i=0; i<a.length; i++ )
    {
    System.out.print( a[i] + " " ) ;
    }
    }

    private static int getRandom( int num )
    {
    return new Double( Math.random() * num ).intValue() ;
    }
    }
      

  2.   

    public static void main(String[] args) {
    String[] a={"1","2","3","4","5"};
    List list = Arrays.asList(a);
    Collections.shuffle(list);
    System.out.println(list);
    }
      

  3.   

    如要把list再变回数组:a = (String[])list.toArray(new String[0]);
      

  4.   

    from Java Docs:
    static void shuffle(List list) 
              Randomly permutes the specified list using a default source of randomness. 同意fog628(发粪涂墙) 
    直接用java api.
    这个刚好满足楼主的要求