/**
* Author: zero
* Created: 2012-8-22
*/
package com.cwa.petserver.memory.activeuser;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* 随机查找算法,最基本的实现,通过给定一个等级,随机找出该等级的指定数目的玩家。
* @author zero
*/
public class RandomSearchAlgo implements ISearchAlgo
{
Random random;
RandomSearchAlgo()
{
random = new Random();
}
@Override
public List<Integer> getRandomUser(ActiveUserPool pool, int lvl, int amount)
{
List<Integer> users = pool.getUserListClone(lvl);
// 如果备选玩家数目都不够,直接返回所有的
if (amount >= users.size()) {
return users;
}
List<Integer> result = new ArrayList<Integer>();
while (result.size() < amount && users.size() > 0) {
moveList(result, users, random.nextInt(users.size()));
}
return result;
}
private void moveList(List<Integer> output, List<Integer> input, int i)
{
output.add(input.remove(i));
}
}