返回最大百分比变化的股票信息

时间:2018-01-24 03:14:45

标签: java arrays getter-setter

我想知道是否有人可以帮我开发所需的方法,以便只打印出之前收盘价和当前收盘价之间变化最大的股票信息。以下是一些可能有助于理解我所指的内容的代码。

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()提供的主体是我认为单独输出最高变化的股票,但我确信代码是通过所有值而不是手动将其指向此元素。

1 个答案:

答案 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;
    }
}