⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randomizer.java.svn-base

📁 一个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 + -