
List<String> strs = new ArrayList<>();
strsadd("1");
strsadd("2");
strsadd("3");
if(strssize() > 0){
//列表不为空才做 *** 作
Collectionsshuffle(strs);//随机打乱列表顺序
Random r = new Random(1000);//随机数获取类
int index = rnextInt(strssize());//获取一个整数,范围在0到strssize()-1之间
Systemoutprintln("随机访问:"+strsget(index));
}
list 不是顺序放在内存里的,一定要遍历一次;
list<int>::iterator iter=abegin();
int n;//n是要访问的第n+1个元素,譬如0是第1个元素
for(int ix=0; ix<n; ++ix) ++iter;
iter;//就是第n+1个元素的内容
假定A的元素是从A[0]至A[19]
从A[0]开始,将A[0]与随机数0-19之间的任意一个位置上的A的数据进行交换,下面是A[1],同样与0-19之间的任意数据交换,直接A[19],一共循环20次(简单来说这一步就是要将A乱序排列)
之后赋给B就简单了,第一次是从A[0]至A[5](可以直接用ArrayCopy),第二次是A[6]至A[11],第三次A[12]至A[17]
当然以上前提是A里的数据本身不能重复。
你可以获取ArrayList存储这组数据 然后以集合的长度作为随机数的上限,用Random对象的nextInt方法随机取ArrayList对象元素的索引值,利用ArrayList对象的get方法通过索引值获取你需要的数,这样就达到了随机取数的目的
用随机 数据随机选出两个数字,用这两个数字调取list 中数据就可以了。
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
listadd("张三");
listadd("李四");
listadd("张五");
listadd("张六");
listadd("张七");
int a=(int)(Mathrandom()listsize());
int b=(int)(Mathrandom()listsize());
while(a==b){
b=(int)(Mathrandom()listsize());
}
Systemoutprintln(a+","+b);
String str=listget(a);
String str1=listget(b);
Systemoutprintln(str+" ,"+str1);
}
Session session=HibernateSessionFactorygetSession();
Transaction tr=sessionbeginTransaction();
Query q=sessioncreateQuery("select q from Que as q where qsubsname= and type='bigque'");
qsetString(0, sname);
ArrayList<Que> list4=(ArrayList<Que>) qlist();
ArrayList<Que> list44=new ArrayList<Que>();
for (int i = 1; i < list4lengtth()-1; i++) {
int a = (int) (Mathrandom() list4size());
Que q1 = list4get(a);
list44add(q1);
}
return list44;
以上就是关于java容器 list 容器随机遍历全部的内容,包括:java容器 list 容器随机遍历、C++中list容器怎么随机访问其中元素、C#数组中抽随机数,不检验,不重复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)