java容器 list 容器随机遍历

java容器 list 容器随机遍历,第1张

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#数组中抽随机数,不检验,不重复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9355261.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存