java容器 list 容器随机遍历

 我来答
匿名用户
推荐于2017-09-29
展开全部
		List<String> strs = new ArrayList<>();
strs.add("1");
strs.add("2");
strs.add("3");
if(strs.size() > 0){
//列表不为空才做操作
Collections.shuffle(strs);//随机打乱列表顺序
Random r = new Random(1000);//随机数获取类
int index = r.nextInt(strs.size());//获取一个整数,范围在0到strs.size()-1之间
System.out.println("随机访问:"+strs.get(index));
}
好大木头
推荐于2016-09-21 · TA获得超过1434个赞
知道大有可为答主
回答量:1705
采纳率:0%
帮助的人:1963万
展开全部
随机遍历是啥意思??
既然随机,就没法保证遍历,难道??
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class TestRandomList {
/**
* @param args
*/
public static void main(String[] args) {
Random ran = new Random();
List list = new ArrayList();
for (int i = 1; i <= 100; i++) {
list.add(Integer.toString(i));
}
while (list.size() > 0) {
int index = ran.nextInt(list.size());
System.out.println(list.get(index));
list.remove(index);
}
}
}
更多追问追答
追问
这样写是可以,每次将从while中选取然后才能打印出来list中的一个元素,如果说我要从list随机取出9个元素,是不是应该先将这个index的数值先设立一个数组,或者是一组key然后再将list和这个key数组组成一个map容器,然后在遍历出来呢?我的意思是这个,是不是还有什么更直接的方法?
追答
从list随机取出9个元素?

那就把while改成for 的9次循环,然后把找到的元素放到另外一个list/数组里面保存即可

Random ran = new Random();
List list = new ArrayList();
for (int i = 1; i 0; i++) {
int index = ran.nextInt(list.size());
result.add(list.get(index));
System.out.println(list.get(index));
list.remove(index);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-06-15 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.7亿
展开全部
先生成0~list.size()-1之间的、不重复的随机数。
追问
list里面有特定的元素,难道说只有先将INDEX先随机,然后在让map设定index为key才能对应随机取出元素值么?
追答
如果不考虑重复,不需要先将索引随机,随机索引就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pnavy1123
2012-06-15
知道答主
回答量:64
采纳率:0%
帮助的人:22.2万
展开全部
不明白什么事随机遍历??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式