Java 随机从 List 随机获取多个不重复对象,Mysql 随机10条数据
今天白天上班的时候,用到这个方法,记录一下,当用户没有发布信息的时候,从数据库中随机获取10
条数据,或者从一个 List 中随机获取到10
条数据。
Mysql 随机获取10条数据:
SELECT *
FROM `table1` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table1`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 10
上面的解决办法速度较快。
List 集合中随机获取10条数据:
主要是在 List 集合 size
范围内随机一个int
值,并且保证它不重复。直接上代码:
Random index = new Random();
//存储已经被调训出来的List 中的 index
List<Integer> indexList = new ArrayList<>();
List<GroupsListAndToolsBo> newList = new ArrayList<>();
for(int i=0,j;i<count;i++){
//获取在 list.size 返回内的随机数
j = index.nextInt(list.size());
//判断是否重复
if(!indexList.contains(j)){
//获取元素
indexList.add(j);
newList.add(list.get(j));
}else{
i--;//如果重复再来一次
}
}
好久没有发博客了,so 大大别封我账号啊。我后面会加油,年底公司小忙。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/263.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。