
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));
}
展开全部
随机遍历是啥意思??
既然随机,就没法保证遍历,难道??
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);
}
}
}
既然随机,就没法保证遍历,难道??
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先生成0~list.size()-1之间的、不重复的随机数。
追问
list里面有特定的元素,难道说只有先将INDEX先随机,然后在让map设定index为key才能对应随机取出元素值么?
追答
如果不考虑重复,不需要先将索引随机,随机索引就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询