随机获得数组String s[] = {"gequ1","gequ2","gequ3","gequ4"};中的字符串,要不重复的,分别赋值给单选按钮的4个选项,怎么来实现
------解决方案--------------------
ArrayList<String> al=Arrays.asList(s)
Collections.shuffle(al);
al中的的就随机的了.
------解决方案--------------------
写个比较简单的!
List<String> list = new ArrayList<String>();
java.util.Random random = new java.util.Random();
for(int i=0;i<s.length;i++){
Stirng temp =s[random.nextInt(s.length)];
if(!list.contains(temp)){
list.add(temp);
}
}
然后把list分别赋值就可以了
------解决方案--------------------
自己写一个也好办:
- Java code
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++; }}
------解决方案--------------------
再来一个:
- Java code
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);