📄 stockexchangebase.java
字号:
/*
* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -