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

📄 goldlotto.java

📁 多线程活动球java 程序,便于理解Multi-Threaded 的功能.
💻 JAVA
字号:
import java.util.*;

public class GoldLotto 
{

	private Vector<Data> vPool, /* Lotto Number Pool */
	vDatas; /* Generated Data Set */

	public GoldLotto(Vector<Data> vData, int nNum)

	{

		vPool = new Vector<Data>(vData.size());

		copyPool(vData);
		vDatas = new Vector<Data>();
		generateLotto(nNum, vData);

		return;
	}/* End GoldLotto Constructor */

	private void copyPool(Vector<Data> vData) {
		Data oData = null, cpData = null;

		Iterator<Data> iter = vData.iterator();

		while (iter.hasNext()) {
			oData = (Data) iter.next();
			cpData = new Data(oData);
			vPool.add(cpData);
		}/* End while */

		return;
	}

	public boolean isPoolEmpty() {
		return vPool.size() == 0;
	}

	public void generateLotto(int nNum, Vector<Data> vData) {

		int nSleep = 100, i;

		for (i = 0; i < nNum; i++) {
			if (isPoolEmpty()) {
				copyPool(vData);
				/* Sleep for a period */
				try {
					Thread.sleep(nSleep);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}

			}
			/* Remove Data From Pool to the Set */
			vDatas.add(popRandom());

		}/* End for */

	}/* End generateLotto Method */

	/* Return Lotto Numbers */
	public Vector<Data> getLottoNum() {
		return vDatas;
	}

	/* Pop a random Number from Pool */
	public Data popRandom() {
		int nPos; /* Index of Chosen Lotto Number */
		Data oInt = null;
		Random r = new Random();

		/* Choose a Random Position from 0 to nTotal-1 */
		nPos = r.nextInt(vPool.size());
		oInt = (Data) vPool.remove(nPos);
		return oInt;

	}

    public static void main(String[] args)
    {
        int[]
            angles = { 20, 25, 30, 35, 40, 45, 50, 55, 60 };
        
        Vector<Data>
            datas = new Vector<Data>();
        
        for(int i=0; i< angles.length; i++)
        {
            datas.add(new Data(angles[i],""));
            
        }//End For
        
        GoldLotto
            lotto = new GoldLotto(datas,20);
        
        Vector<Data>
            vNumbers = lotto.getLottoNum();
        
        Iterator<Data>
            iData = vNumbers.iterator();
        
        while(iData.hasNext())
        {
            System.out.print(iData.next().getnValue()+ " ");
            
        }//End while
        
        return;
    }//End main Method
    
    
}/* End Class Definition */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -