我想知道是否有人可以帮我开发所需的方法,以便只打印出之前收盘价和当前收盘价之间变化最大的股票信息。以下是一些可能有助于理解我所指的内容的代码。
public class driveStockList {
public static void main(String[] args) {
//Stock stock = new Stock();
Stock[] Stocks = new Stock[6];
Stocks[0] = new Stock("ORCL", "Oracle Corporation");
Stocks[0].setPreviousClosingPrice(34.50);
Stocks[0].setCurrentPrice(34.35);
Stocks[0].getChangePercent();
Stocks[1] = new Stock("MSFT", "Microsoft Corporation");
Stocks[1].setPreviousClosingPrice(90.13);
Stocks[1].setCurrentPrice(90.19);
Stocks[1].getChangePercent();
Stocks[2] = new Stock("GOOGL", "Alphabet Inc. ");
Stocks[2].setPreviousClosingPrice(1139.10);
Stocks[2].setCurrentPrice(1139.0);
Stocks[2].getChangePercent();
Stocks[3] = new Stock("AAPL", "Apple Inc. ");
Stocks[3].setPreviousClosingPrice(179.10);
Stocks[3].setCurrentPrice(179.45);
Stocks[3].getChangePercent();
Stocks[4] = new Stock("NFLX", "Netflix, Inc. ");
Stocks[4].setPreviousClosingPrice(217.50);
Stocks[4].setCurrentPrice(217.69);
Stocks[4].getChangePercent();
Stocks[5] = new Stock("INTC", "Intel Corporation");
Stocks[5].setPreviousClosingPrice(44.39);
Stocks[5].setCurrentPrice(44.59);
Stocks[5].getChangePercent();
outputStockItems (Stocks);
outputStockBiggestChange(Stocks);
}
private static void outputStockItems(Stock[] Stocks) {
System.out.printf("Symbol\t \tName PreviousClosingPrice\tCurrent Price");
System.out.printf("\n----------------------------------------------------------------------");
for ( int i = 0; i < Stocks.length; i++ ) {
System.out.printf("\n" + Stocks[i].getSymbol());
System.out.printf("\t" + Stocks[i].getName());
System.out.printf("\t " + Stocks[i].getPreviousClosingPrice());
System.out.printf(" \t" + Stocks[i].getCurrentPrice());
}
}
public static void outputStockBiggestChange(Stock[] p) {
for ( int i = 5; i < Stocks.length; i++ ) {
System.out.printf("\n" + Stocks[i].getSymbol());
System.out.printf("\t" + Stocks[i].getName());
System.out.printf("\t " + Stocks[i].getPreviousClosingPrice());
System.out.printf(" \t" + Stocks[i].getCurrentPrice());
}
我已经设定了方法,但我不确定如何选择单个最大元素/值来改变百分比。为outputStockBiggestChange()提供的主体是我认为单独输出最高变化的股票,但我确信代码是通过所有值而不是手动将其指向此元素。
答案 0 :(得分:-1)
float maxDiff = 0;
for ( int i = 0; i < Stocks.length; i++ ) {
float diff = Stocks[i].getPreviousClosingPrice() - Stocks[i].getCurrentPrice();
diff = Math.abs(diff);
if(diff > maxDiff) {
maxDiff = diff;
}
}