关于从ArrayList中随机的抽取元素

Freefish1994 2016-08-28 10:53:24
现在有一个List的集合
如何能从这个集合中随机抽取指定个数个内容不重复的元素并将其添加到一个新的List中
知道用Random.nextInt(),只是不知道如何实现抽取的元素的内容能不重复?
...全文
725 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
java的无名 2016-08-29
  • 打赏
  • 举报
回复
判断随机获取的内容与新的List内容是否equals不就好了吗
自由自在_Yu 2016-08-29
  • 打赏
  • 举报
回复
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("qw"); list.add("sw"); list.add("ww"); list.add("ww"); list.add("sss"); list.add("ffs"); list.add("gbs"); Set<String> set = new HashSet<String>(); // 抽取m个 int m = 2; for (int j = 0; j < m; j++) { int n = (int) (Math.random() * list.size()); System.out.println(n); set.add(list.get(n)); } //判断set集合长度,如果是不够m个,继续抽取。。。 List<String> list2 = new ArrayList<String>(); Iterator<String> it = set.iterator(); for(;it.hasNext();){ list2.add(it.next().toString()); } System.out.println(list2); }
sean_0xiao 2016-08-29
  • 打赏
  • 举报
回复
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class one { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); int number=0; //向集合中添加20个数 for(int i =20;i<=40;i++){ list.add(i); } //定义一个boolean类型的数组,如果list中的数被取出,则对应的Boolean值变为true boolean[] ok = new boolean[list.size()]; while(true){ System.out.print("请输入要随机抽取的个数:"); Scanner sc = new Scanner(System.in); number = sc.nextInt(); if(number>=1&&number<=20){ break; } System.out.println("你输入的有误,请重新输入!"); } //定义存放取到的数的集合 List<Integer> list1 = new ArrayList<Integer>(); //取出数据 for(int i=0;i<number;i++){ int num ; do{ num = (int)(Math.random()*list.size()); }while(ok[num]); list1.add(list.get(num)); ok[num]=true; } System.out.println(list1); } }
自由自在_Yu 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 zhangscheng922 的回复:
我的 思路是用循环将抽取到的元素放入Set集合中,当Set集合中size()到达你要的个数后循环结束,再通过构造方法将Set集合重新生成一个新的List集合
  • 打赏
  • 举报
回复
我的 思路是用循环将抽取到的元素放入Set集合中,当Set集合中size()到达你要的个数后循环结束,再通过构造方法将Set集合重新生成一个新的List集合

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧