В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.
Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.
Оператор
==
проверяет, являются ли две строки точно одним и тем же объектом.Метод
blockquote>.equals()
проверяет, имеют ли две строки одно и то же значение.
Создайте класс анализатора общего ресурса, который включает в себя необходимые функции:
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);
}
Вы можете запустить код и проверить его, используя эту ссылку