社区
Java SE
帖子详情
list里面取随机几个对象问题
brucecj1227
2006-12-05 04:01:28
现有一个list,里面取的是一个个的String对象,这个list.size=50,我想从里面随机取出六个String对象,但不能重复,请问各位有没有什么好的办法?代码尽是要简洁一点的
...全文
1046
23
打赏
收藏
list里面取随机几个对象问题
现有一个list,里面取的是一个个的String对象,这个list.size=50,我想从里面随机取出六个String对象,但不能重复,请问各位有没有什么好的办法?代码尽是要简洁一点的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sxnucseven
2006-12-06
打赏
举报
回复
if(!newList.contain(str)){
newList.add(str);
i++;
}
这个判断已经去掉重复了。
e3002
2006-12-06
打赏
举报
回复
list 可以存在重复值
Marcus-Z
2006-12-06
打赏
举报
回复
Set是不能加重复的,你的LIST里本身里面也有可能重复的
sxnucseven
2006-12-05
打赏
举报
回复
哦 写错了 是不改变原来的List
sxnucseven
2006-12-05
打赏
举报
回复
我那样写就是为了改变原来的list
lz给的只是list接口 具体实现可能不知道,不知道具体实现类是不能用copy()的,所以只能县创建另一个arrylist或者linkedlist或者vector,不管哪个还得把以前的list中的string一个一个加近来,多麻烦,50取6重复取得概率不大,所以就用循环加判断了。
捏造的信仰
2006-12-05
打赏
举报
回复
haisenmai(我应该做得到) 第二次答案为正解
haisenmai
2006-12-05
打赏
举报
回复
sxnucseven(SC=>CS=>KOF=>O2JAM=>CSDN)(我进步了吗?)
楼上的,如果第一次把第50个取出来了,第二次又随到第50个会出现什么状况阿?
to
zhh1981(**的猪头) sxnucseven 这位兄弟说的你考虑下啊
fool_leave
2006-12-05
打赏
举报
回复
zhh1981是对的
今天刚答完一个人的问题,Random不可以在for循环里面new
而且Set的效率要高
开发一部
2006-12-05
打赏
举报
回复
zhh1981(**的猪头) 写的那个就没有问题。
Marcus-Z
2006-12-05
打赏
举报
回复
haisenmai(我应该做得到)
haisenmai
2006-12-05
打赏
举报
回复
拷贝到另外一个list里面去删副本就是了
Marcus-Z
2006-12-05
打赏
举报
回复
LZ用我的可以吗?
brucecj1227
2006-12-05
打赏
举报
回复
不能删的,我这次用了下次还要再用的,删了我岂不是没用的了?
Marcus-Z
2006-12-05
打赏
举报
回复
注意list里面也可能有重复对象啊
Marcus-Z
2006-12-05
打赏
举报
回复
Set set = new HashSet();
Random rd=new Random();
int k;
while (set.size()<6){
k=rd.nextInt(50);
set.add(list.get(k));
}
Pro_Vida
2006-12-05
打赏
举报
回复
xwj1003(哈罗DayDayUp) 你的办法行得通哈!!不错哦~!
haisenmai
2006-12-05
打赏
举报
回复
for(int i =0;i<6;i++){
Random rd=new Random();
k=rd.nextInt(list.size);
str[i]=list.get(k);
list.remove(k);
}
xwj1003
2006-12-05
打赏
举报
回复
用linklist,取到一个删除一个。50-1
brucecj1227
2006-12-05
打赏
举报
回复
楼上的,我觉得这个方法好像不太好,有没有什么方法,list还是list的?我原来取三个出来可以完全不相同,但现在取六个,那排列组合的次数就多了许多了
sxnucseven
2006-12-05
打赏
举报
回复
50取6 重复不会很多,所以这个就行了,不用修改原来的list。
private List<String> getRadomString(){
List<String> newList=new Vector<String>();
int i=0;
String str="";
Radom rd=new Radom();
while(true){
if(i==6){
return newList;
}
str=list.get(rd.nextInt(50));
if(!newList.contain(str)){
newList.add(str);
i++;
}
}
}
现写的,或许有语法错误。
加载更多回复(3)
零基础Java入门课程-类和
对象
集合框架 集合框架结构:接口、实现类 Collection接口的方法、Set接口的方法、
List
接口的方法、Map接口的方法 Array、Linked、Hash、Tree底层实现原理 泛型的作用、Collections工具类、历史集合类 I/O流 Path类的...
【高端操作】原来从
List
中“
随机
”
取
对象
还可以这样搞!Collections.shuffle()
文章目录1. 事情是这样的[Math.random()]2. 高端操作[Collections.shuffle()] 1. 事情是这样的[Math.random()] 对于像小名这样的CRUD攻城狮,需求中遇到有
随机
字样的,首先会想起来Math.random() Math.random()我们的常规操作有: //产生一个[0,1)之间的
随机
数。 Math.random(): //返回指定范围的
随机
数(m-n之间)的公式: Math.random()*(n-m)+m; 场景是:从集合中
随机
拿出6个人传给前
随机
获
取
list
内
对象
package net.longjin.comm.utils; import org.apache.commons.lang.StringUtils; import java.util.*; /** *
随机
获
取
list
内
对象
*/ public class RandomSelect { public static Map<String,String> getR...
Java
list
随机
取
N个值,最后结果返回
list
对象
Java
随机
取
List
中 N个值
list
随机
获
取
几条数据
从大佬那拿过来的 // 从
List
中
随机
出count个
对象
private
List
<Object> randomTopic(
List
<Object>
list
, int count) { // 创建一个长度为count(count<=
list
)的数组,用于存
随机
数 int[] a = new int[count]; // 利于此数组产生
随机
数 int[] b = new int[
list
.size()]; int size =
list
.size(); //
取
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章