日期:2014-05-20 浏览次数:21047 次
boolean[] flag=new boolean[s.length()];
Random r=new Random();
for(i=0;i<s.length();){
   int index=r.nextInt(4);
   if(!flag[index]){
      btn[i].setText(s[index]);// 假设你的按钮都放在一个btn数组中了.
      flag[index]=true;
      i++;
    }
}
------解决方案--------------------
再来一个:
Random r=new Random();
String temp=null;
for(int i=s.length()-1;i>=0;i++){
    int t=r.nextInt(i);
    temp=s[t];
    btn[i].setText(temp);
    s[t]=s[i];
    s[i]=temp;
}
------解决方案--------------------
i--
------解决方案--------------------
帮你顶起来~~~
------解决方案--------------------
    产生一个1到4的随机数吧,应该差不多 !
------解决方案--------------------
Random  r = new Random();  
int i1 = r.Next(4);
//产生一到四的随机数
------解决方案--------------------
String s[] = {"gequ1","gequ2","gequ3","gequ4"};
List<string> AList = new List<string>();
while(true)
{
  int a = new Random(); //忘了Java里面怎么写了,就是得到一个随机数
  int ayu = a%4;       //取余数  
  if(!AList.contain(s[ayu]))//判断得到随即顺序的数组是否已经含有
  {
     AList.add(s[ayu]);
  }
  if(AList.Lenth == 4)
  {
     break;
  }
}
取3个元素 只要把"AList.Lenth == 4" 改成 "AList.Lenth == 3"
------解决方案--------------------
Arraylist很好很强大
------解决方案--------------------
帮顶……
------解决方案--------------------
首先你这个所谓的${songs}应该是从java代码得到的,为什么不能得到以前就在java代码里随机处理(打乱顺序)一下,再扔到页面作显示呢?先说一句多余的话:如果是想把页面的列表拿到java代码中,一般会采取的到数组,java中循环得到的方式。
话不多说(这废话就不少了),随机处理代码如下,主要思路是ArrayList(有顺序)配合HashSet(值不可重复)实现,楼主仅做参考:
		String[] s = {"gequ1","gequ2","gequ3","gequ4"};
		int length = 3;
		List<String> sList = new ArrayList<String>();
		if(s != null) {
			if(s.length > length) {
				Set<Integer> hs = new HashSet<Integer>();
				Random r = new Random();
				int random = 0;
				while(hs.size() < length) {
					random = r.nextInt(s.length);
					hs.add(random);
				}
				Iterator<Integer> it = hs.iterator();
				while(it.hasNext()) {
					sList.add(s[it.next()]);
				}
			} else {
				sList = Arrays.asList(s);
				Collections.shuffle(sList);  
			}
		}
		for(String str : sList) {
			System.out.println(str);