📄 randomizer.java.svn-base
字号:
/*
* Randomizer.java
*
* Created on 28. Dezember 2006, 20:35
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package kanjitori.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
*
* @author Pirx
*/
public class Randomizer<T> {
private final static Random RANDOM = new Random();
private List<T> list = new ArrayList<T>();
private List<Integer> probs = new ArrayList<Integer>();
private int pSum = 0;
public Randomizer() {
}
public Randomizer(T[] tArray, int[] probs) {
if (tArray.length != probs.length) {
throw new IllegalArgumentException("Arrays must have same length");
}
for (int i = 0; i < tArray.length; i++) {
add(tArray[i], probs[i]);
}
}
public void add(T t, int prob) {
list.add(t);
pSum += prob;
probs.add(pSum);
}
public int size() {
return list.size();
}
public T get() {
int prob = RANDOM.nextInt(pSum);
for (int i = 0; i < probs.size(); i++) {
if (prob < probs.get(i)) {
return list.get(i);
}
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -