stockexchangebase.java

来自「source code of voyager yellow page」· Java 代码 · 共 97 行

JAVA
97
字号
/*
 * RECURSION PROPRIETARY-NOT TO BE DISCLOSED OUTSIDE RECURSION, INC.
 */

/**
 * Created by twheeler on Mar 8, 2007 at 4:33:08 PM
 */
package examples.yellowpages;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

/**
 * 
 *
 * @author twheeler
 */
public class StockExchangeBase implements IStockExchange
{
  private String name;
  private List stockData = new LinkedList();

  /**
   * @param string
   * @param tickers
   */
  public StockExchangeBase(String name, String[] tickers)
  {
    this.name = name;
    createStockData(tickers, stockData);
    printStockData();
  }

  public String getName()
  {
    return name;
  }

  public List getStockData()
  {
    return stockData;
  }

  public StockData getStockData(String ticker)
  {
    Iterator i = stockData.iterator();
    while(i.hasNext())
    {
      StockData data = (StockData) i.next();
      if(data.getTicker().equals(ticker))
        return data;
    }
    return null;
  }

  protected void printStockData()
  {
    System.out.println("Stock data for " + getName() + " exchange:");
    Iterator i = stockData.iterator();
    while(i.hasNext())
    {
      StockData data = (StockData) i.next();
      System.out.println(data.toString());
    }
  }
  
  protected static void createStockData(String[] tickers, List stockData)
  {
    Random random = new Random();
    
    for(int i = 0; i < tickers.length; i++)
    {
      String ticker = tickers[i];
      double pe = random.nextDouble() * 6 + 10;
      double[] closingPrices = new double[10];
      double closingPrice = random.nextDouble() * 20 + 20;
      double maxChange = closingPrice / 10;
      double trend = random.nextDouble() * (maxChange / 4);
      if(random.nextBoolean() == true)
        trend = -trend;
      for(int j = 0; j < closingPrices.length; j++)
      {
        closingPrices[j] = closingPrice;
        double change = random.nextDouble() * maxChange;
        if(random.nextBoolean() == true)
          change = -change;
        closingPrice = change + trend + closingPrices[j];
      }
      stockData.add(new StockData(ticker, pe, closingPrices));
    }
  }
  

}

⌨️ 快捷键说明

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