Как получить многократную прибыль на акции?

В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.

Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.

Оператор == проверяет, являются ли две строки точно одним и тем же объектом.

Метод .equals() проверяет, имеют ли две строки одно и то же значение.

0
задан c0der 10 March 2019 в 06:19
поделиться

1 ответ

Создайте класс анализатора общего ресурса, который включает в себя необходимые функции:

class ShareAnalyzer {

    private final int[] aktiePris;
    private int sellMinut = 0, buyMinut = 0, buyPrice,  sellPrice;

    ShareAnalyzer(int[] aktiePris) {

        this.aktiePris = aktiePris;
        findProfit();
    }

    private void findProfit() {

        if (aktiePris.length < 1) return ;
        int minValue = aktiePris[0];
        int maxValue = minValue;
        int indeksMaxMinut = 0, indeksMinMinut = 0;

        for (int i = 1; i < aktiePris.length; i++) {
            if (aktiePris[i] > maxValue) {
                maxValue = aktiePris[i];
                indeksMaxMinut = i;
                int priceDiff = maxValue - minValue;
                if (priceDiff > getProfit()) {
                    sellPrice = maxValue;
                    buyPrice  = minValue;
                    sellMinut = indeksMaxMinut;
                    buyMinut = indeksMinMinut;
                }
            } else if (aktiePris[i] < minValue) {
                minValue = maxValue = aktiePris[i];
                indeksMinMinut = i;
            }
        }
    }

    //time in minutes from opening
    int getSellTime() {return sellMinut;}

    int getSellPrice() {return sellPrice;}

    //time in minutes from opening
    int getBuyTime() {return buyMinut;  }

    int getBuyPrice() {return buyPrice;}

    int getProfit() {   return sellPrice - buyPrice;    }
}

Вы также можете добавить метод для распечатки информации об общем анализаторе:

    //this could be implemented as `toString` of ShareAnalyzer
    private static void printShareInfo(ShareAnalyzer shareAnalyzer){
        System.out.println("Best time & price for buying is " + shareAnalyzer.getBuyTime() + " minutes after opening for " + shareAnalyzer.getBuyPrice() + " EUR." + "\n"
                + "Best time & price for selling is " + shareAnalyzer.getSellTime() + " minutes after opening for " + shareAnalyzer.getSellPrice() + " EUR." + "\n"
                + "Profit: " + shareAnalyzer.getProfit());
    }

Создать новый ShareAnalyzer экземпляр для каждой акции, которую вы хотите проанализировать.

public static void main(String args[]) {

    int[] aktiePris1 = new int[]{10, 7, 5, 8, 11, 9};
    ShareAnalyzer shareAnalyzer1 = new ShareAnalyzer(aktiePris1);
    printShareInfo(shareAnalyzer1);

    int[] aktiePris2 = new int[]{2, 12, 4, 7 , 11, 9, 1 , 8};
    ShareAnalyzer shareAnalyzer2 = new ShareAnalyzer(aktiePris2);
    printShareInfo(shareAnalyzer2); 
}

Вы можете запустить код и проверить его, используя эту ссылку

0
ответ дан c0der 10 March 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: