随机从规则库中去取尽规则
Posted 滴滴哒滴哒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机从规则库中去取尽规则相关的知识,希望对你有一定的参考价值。
新接了一个需求,大致要求每日定量从规则库中去规则,一天的规则不重复,并在一定天数取完。考虑到取完和不重复的特性,决定用栈去实现。
public class RandomListTest<E> {
public void getRandomValue(List<E> list,Integer numsPerDay,Integer days){
//初始化
LinkedList<E> stack1 = new LinkedList<>();
LinkedList<E> stack2 = new LinkedList<>();
for (int i = 0; i < list.size(); i++) {
stack1.push(list.get(i));
}
//随机
Collections.shuffle(stack1);
for (int i = 0; i < days; i++) {
if (stack1.size() >= numsPerDay){
for (int j = 0; j < numsPerDay; j++) {
//TODO stack1.peek()
System.out.println(stack1.peek());
stack2.push(stack1.pop());
}
}else {
int dist = numsPerDay - stack1.size();
for (int j = 0; j < stack1.size(); j++) {
//TODO stack1.get(j)
System.out.println(stack1.get(j));
}
//随机
Collections.shuffle(stack2);
for (int j = 0; j < dist; j++) {
//TODO stack2.peek()
System.out.println(stack2.peek());
stack1.push(stack2.pop());
}
//互换
LinkedList<E> temp = stack1;
stack1 = stack2;
stack2 = temp;
}
}
}
}
以上是关于随机从规则库中去取尽规则的主要内容,如果未能解决你的问题,请参考以下文章